XFusion API v1.3.0
载入中...
搜索中...
未找到
examples/task/task_pool/main/xf_main.c

xf_task 任务池示例。

/* ==================== [Includes] ========================================== */
#include "xf_task.h"
/* ==================== [Defines] =========================================== */
#define MAX_WORKERS 3
#define TAG "task_pool"
/* ==================== [Typedefs] ========================================== */
/* ==================== [Static Prototypes] ================================= */
static void ntask(xf_task_t task);
/* ==================== [Static Variables] ================================== */
static xf_task_pool_t npool = NULL;
/* ==================== [Macros] ============================================ */
/* ==================== [Global Functions] ================================== */
void xf_main(void)
{
}
/* ==================== [Static Functions] ================================== */
static void ntask(xf_task_t task)
{
static int num = 0;
num++;
// 不断的创建任务(由于任务池的存在,所以不会申请内存,反而会回收已经使用完的任务)
XF_LOGI(TAG, "ntask:%d", num);
if (num < 5) {
} else {
XF_LOGI(TAG, "delete npool");
}
}
void xf_main(void)
Definition xf_main.c:28
xf_err_t xf_task_pool_delete(xf_task_pool_t pool)
删除任务池。
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
任务池句柄。
static xf_task_pool_t xf_ttask_pool_create(uint32_t max_works, uint32_t delay_ms, uint32_t count)
在默认的任务管理下,创建 ttask 任务池。
Definition xf_task.h:258
#define TAG
Definition xf_main.c:24
static xf_task_pool_t npool
Definition xf_main.c:34
static void ntask(xf_task_t task)
Definition xf_main.c:48
#define MAX_WORKERS
Definition xf_main.c:23
static void task(xf_task_t task)
Definition xf_main.c:45
#define XF_LOGI(tag, format,...)
void * xf_task_t
任务句柄。