XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_main.c
浏览该文件的文档.
1
17/* ==================== [Includes] ========================================== */
18
19#include "xf_task.h"
20
21/* ==================== [Defines] =========================================== */
22
23#define MAX_WORKERS 3
24#define TAG "task_pool"
25
26/* ==================== [Typedefs] ========================================== */
27
28/* ==================== [Static Prototypes] ================================= */
29
30static void ntask(xf_task_t task);
31
32/* ==================== [Static Variables] ================================== */
33
34static xf_task_pool_t npool = NULL;
35
36/* ==================== [Macros] ============================================ */
37
38/* ==================== [Global Functions] ================================== */
39
40void xf_main(void)
41{
43 xf_task_init_from_pool(npool, ntask, (void *)1, 1);
44}
45
46/* ==================== [Static Functions] ================================== */
47
48static void ntask(xf_task_t task)
49{
50 static int num = 0;
51 num++;
52 // 不断的创建任务(由于任务池的存在,所以不会申请内存,反而会回收已经使用完的任务)
53 XF_LOGI(TAG, "ntask:%d", num);
54 if (num < 5) {
55 xf_task_init_from_pool(npool, ntask, (void *)1, 1);
56 } else {
58 XF_LOGI(TAG, "delete npool");
59 }
60
61}
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
任务句柄。