声明事件循环的C接口。
引用文件: <ffrt/loop.h>
库: libffrt.z.so
系统能力: SystemCapability.Resourceschedule.Ffrt.Core
起始版本: 12
相关模块: FFRT
| 名称 | 描述 |
|---|---|
| FFRT_C_API ffrt_loop_t ffrt_loop_create(ffrt_queue_t queue) | 在指定的队列上创建loop,用于运行事件循环。 |
| FFRT_C_API int ffrt_loop_destroy(ffrt_loop_t loop) | 销毁loop。调用该接口可释放与loop关联的资源。 |
| FFRT_C_API int ffrt_loop_run(ffrt_loop_t loop) | 启动一次loop循环。该函数会独占调用线程,在当前调用线程中同步运行事件循环,直到调用ffrt_loop_stop后才会返回。 |
| FFRT_C_API void ffrt_loop_stop(ffrt_loop_t loop) | 停止loop循环。调用后,正在执行ffrt_loop_run的线程将停止循环并返回。 |
| FFRT_C_API int ffrt_loop_epoll_ctl(ffrt_loop_t loop, int op, int fd, uint32_t events, void *data, ffrt_poller_cb cb) | 在ffrt loop上控制epoll文件描述符。在目标文件描述符上添加、修改或删除监听的事件。 |
| FFRT_C_API ffrt_timer_t ffrt_loop_timer_start(ffrt_loop_t loop, uint64_t timeout, void* data, ffrt_timer_cb cb, bool repeat) | 在ffrt loop上启动定时器。超时后调用回调函数;若repeat为true,则周期性重复触发。 |
| FFRT_C_API int ffrt_loop_timer_stop(ffrt_loop_t loop, ffrt_timer_t handle) | 在ffrt loop上停止定时器。调用后,该定时器不再触发。 |
FFRT_C_API ffrt_loop_t ffrt_loop_create(ffrt_queue_t queue)
描述
在指定的队列上创建loop,用于运行事件循环。
起始版本: 12
参数:
| 参数项 | 描述 |
|---|---|
| ffrt_queue_t queue | 队列。 |
返回:
| 类型 | 说明 |
|---|---|
| FFRT_C_API ffrt_loop_t | loop创建成功时返回非空的loop句柄; 否则返回空指针。 |
FFRT_C_API int ffrt_loop_destroy(ffrt_loop_t loop)
描述
销毁loop。调用该接口可释放与loop关联的资源。
起始版本: 12
参数:
| 参数项 | 描述 |
|---|---|
| ffrt_loop_t loop | loop句柄。 |
返回:
| 类型 | 说明 |
|---|---|
| FFRT_C_API int | loop销毁成功时返回0; 否则返回-1。 |
FFRT_C_API int ffrt_loop_run(ffrt_loop_t loop)
描述
启动一次loop循环。该函数会独占调用线程,在当前调用线程中同步运行事件循环,直到调用ffrt_loop_stop后才会返回。
起始版本: 12
参数:
| 参数项 | 描述 |
|---|---|
| ffrt_loop_t loop | loop句柄。 |
返回:
| 类型 | 说明 |
|---|---|
| FFRT_C_API int | loop运行成功时返回0; 否则返回-1。 |
参考:
FFRT_C_API void ffrt_loop_stop(ffrt_loop_t loop)
描述
停止loop循环。调用后,正在执行ffrt_loop_run的线程将停止循环并返回。
起始版本: 12
参数:
| 参数项 | 描述 |
|---|---|
| ffrt_loop_t loop | loop句柄。 |
参考:
FFRT_C_API int ffrt_loop_epoll_ctl(ffrt_loop_t loop, int op, int fd, uint32_t events, void *data, ffrt_poller_cb cb)
描述
在ffrt loop上控制epoll文件描述符。在目标文件描述符上添加、修改或删除监听的事件。
起始版本: 12
参数:
| 参数项 | 描述 |
|---|---|
| ffrt_loop_t loop | loop句柄。 |
| int op | 在目标文件描述符上执行的操作类型,如添加、修改或删除。 |
| int fd | 执行操作的目标文件描述符。 |
| uint32_t events | 监听的事件类型(如可读、可写等),支持按位或组合。 |
| void *data | 传递给cb的用户数据。 |
| ffrt_poller_cb cb | 当目标fd被轮询到时执行的用户回调函数。 |
返回:
| 类型 | 说明 |
|---|---|
| FFRT_C_API int | 操作成功时返回0; 否则返回-1。 |
FFRT_C_API ffrt_timer_t ffrt_loop_timer_start(ffrt_loop_t loop, uint64_t timeout, void* data, ffrt_timer_cb cb, bool repeat)
描述
在ffrt loop上启动定时器。超时后调用回调函数;若repeat为true,则周期性重复触发。
起始版本: 12
参数:
| 参数项 | 描述 |
|---|---|
| ffrt_loop_t loop | loop句柄。 |
| uint64_t timeout | 超时时间,单位是毫秒,取值范围为[0, +∞)。 |
| void* data | 传递给cb的用户数据。 |
| ffrt_timer_cb cb | 超时后执行的用户回调函数。 |
| bool repeat | 是否重复执行该定时器。true表示重复,false表示只执行一次。 |
返回:
| 类型 | 说明 |
|---|---|
| FFRT_C_API ffrt_timer_t | 定时器句柄;若loop或cb为空则返回-1。 |
参考:
FFRT_C_API int ffrt_loop_timer_stop(ffrt_loop_t loop, ffrt_timer_t handle)
描述
在ffrt loop上停止定时器。调用后,该定时器不再触发。
起始版本: 12
参数:
| 参数项 | 描述 |
|---|---|
| ffrt_loop_t loop | loop句柄。 |
| ffrt_timer_t handle | 定时器句柄,由ffrt_loop_timer_start返回。 |
返回:
| 类型 | 说明 |
|---|---|
| FFRT_C_API int | 操作成功时返回0; 否则返回-1。 |
参考: