16#if XF_TASK_POOL_IS_ENABLE 
   19#include "../kernel/xf_task_base.h" 
   20#include "../task/xf_task_default.h" 
   21#include "../task/xf_ttask.h" 
   25#define TAG "task_pool" 
   55    XF_ASSERT(max_works, NULL, 
TAG, 
"max_works must not be 0");
 
   56    XF_ASSERT(manager, NULL, 
TAG, 
"manager must not be NULL");
 
   73    for (
size_t i = 0; i < max_works; i++) {
 
   78        pool_task[i].
pool = pool;
 
 
  124    handle->
arg = func_arg;
 
  127    return pool_task->
task;
 
 
xf_err_t xf_task_pool_delete(xf_task_pool_t pool)
删除任务池。
 
xf_task_pool_t xf_task_pool_create_with_manager(uint32_t max_works, xf_task_manager_t manager, xf_task_type_t type, void *config)
创建一个任务池。
 
xf_task_t xf_task_init_from_pool(xf_task_pool_t pool, xf_task_func_t func, void *func_arg, uint16_t priority)
初始化任务。
 
void * xf_task_pool_t
任务池句柄。
 
#define XF_ASSERT(condition, retval, tag, format,...)
xfusion 断言宏(条件 不成立 时则输出日志后返回)。
 
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
 
static void xf_list_init(xf_list_t *list)
动态初始化链表.
 
static void xf_list_add_tail(xf_list_t *new_node, xf_list_t *head)
xf_list_add_tail - 在指定节点之前添加一个 new_node.
 
static void xf_list_del_init(xf_list_t *entry)
xf_list_del_init - 从链表中删除节点, 并重新初始化.
 
#define xf_list_first_entry(ptr, type, member)
xf_list_first_entry - 获取链表中的第一个元素.
 
#define xf_list_for_each_entry(pos, head, type, member)
list_for_each_entry - 迭代给定类型的链表。
 
xf_task_pool_handle_t * pool
 
task 的父对象,保存了 task 的公共属性。
 
static void task(xf_task_t task)
 
#define XF_LOGE(tag, format,...)
 
void xf_task_destructor(xf_task_t task)
任务销毁。回收任务资源
 
xf_err_t xf_task_suspend(xf_task_t task)
任务进入挂起。挂起态的任务不会参与调度。
 
xf_task_t xf_task_create_with_manager(xf_task_manager_t manager, xf_task_type_t type, xf_task_func_t func, void *func_arg, uint16_t priority, void *config)
在指定任务管理器下创建任务。
 
void xf_task_reset(xf_task_t task)
任务重置。将任务的一些参数进行重置。
 
void xf_task_delete(xf_task_t task)
任务删除函数。将任务加入销毁队列,并设置任务为删除态。
 
void(* xf_task_func_t)(xf_task_t task)
任务调用函数原型。
 
enum _xf_task_type_t xf_task_type_t
任务类型,通过注册表 xf_task_reg.inc 生成相关的内容。
 
#define XF_TASK_PRIORITY_LEVELS
配置任务最高优先级,1 ~ 1024 之间。
 
void * xf_task_manager_t
任务管理器句柄。
 
static void xf_task_delete_(xf_task_t task)
 
struct _xf_task_pool_handle_t xf_task_pool_handle_t
 
struct _xf_pool_task_t xf_pool_task_t
 
static void xf_task_pool_default_task(xf_task_t task)