工作队列
优质
小牛编辑
145浏览
2023-12-01
工作队列接口
结构体 | |
struct | rt_workqueue |
工作队列控制块 更多... | |
struct | rt_work |
工作回调函数信息 更多... | |
函数 | |
struct rt_workqueue * | rt_workqueue_create (const char *name, rt_uint16_t stack_size, rt_uint8_t priority) |
创建工作队列 | |
rt_err_t | rt_workqueue_destroy (struct rt_workqueue *queue) |
销毁工作队列 | |
rt_err_t | rt_workqueue_dowork (struct rt_workqueue *queue, struct rt_work *work) |
增加工作队列任务 | |
rt_err_t | rt_workqueue_cancel_work (struct rt_workqueue *queue, struct rt_work *work) |
取消工作队列任务 | |
rt_err_t | rt_workqueue_cancel_work_sync (struct rt_workqueue *queue, struct rt_work *work) |
同步取消工作队列任务 | |
rt_inline void | rt_work_init (struct rt_work *work, void(*work_func)(struct rt_work *work, void *work_data), void *work_data) |
初始化work | |
详细描述
工作队列接口
函数说明
struct rt_workqueue* rt_workqueue_create | ( | const char * | name, |
rt_uint16_t | stack_size, | ||
rt_uint8_t | priority | ||
) |
创建工作队列
调用该函数接口后,内核首先从动态内存堆中分配一个工作队列控制块,然后对该控制块进行基本的初始化,并创建一个工作队列处理线程。
- 参数
name 工作队列名称 stack_size 工作队列处理线程堆栈空间大小 priority 工作队列处理线程的优先级
- 返回
- 创建成功则返回工作队列句柄,失败则返回 RT_NULL
rt_err_t rt_workqueue_destroy | ( | struct rt_workqueue * | queue | ) |
销毁工作队列
调用这个函数接口后,系统会删除这个工作队列的处理线程,然后释放相应的工作队列控制块占有的内存。
- 参数
queue 工作队列句柄
- 返回
- RT_EOK
rt_err_t rt_workqueue_dowork | ( | struct rt_workqueue * | queue, |
struct rt_work * | work | ||
) |
增加工作队列任务
调用该函数可以向指定的工作队列中添加任务。
- 参数
queue 工作队列句柄 work 任务控制块
- 返回
- RT_EOK 加入任务成功;-RT_EBUSY 任务已在执行中,请勿重复执行。
rt_err_t rt_workqueue_cancel_work | ( | struct rt_workqueue * | queue, |
struct rt_work * | work | ||
) |
取消工作队列任务
调用该函数可以取消任务队列中尚未执行的任务。
- 参数
queue 工作队列句柄 work 任务控制块
- 返回
- RT_EOK 取消成功;-RT_EBUSY 任务已在执行中,不能取消。
rt_err_t rt_workqueue_cancel_work_sync | ( | struct rt_workqueue * | queue, |
struct rt_work * | work | ||
) |
同步取消工作队列任务
调用该函数可以取消循环任务,如果任务正在执行中,则等待该次任务完成后取消。
- 参数
queue 工作队列句柄 work 任务控制块
- 返回
- RT_EOK(如果任务已在执行中,等待任务完成后取消)
rt_inline void rt_work_init | ( | struct rt_work * | work, |
void(*)(struct rt_work *work, void *work_data) | work_func, | ||
void * | work_data | ||
) |
初始化work
调用该函数可以初始化指定work的链表,并指定任务回调函数和待处理的数据指针。
- 参数
work work控制块 work_func work回调处理函数 work_data 待处理的数据缓冲区指针