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
30
static
void
ntask
(
xf_task_t
task
);
31
32
/* ==================== [Static Variables] ================================== */
33
34
static
xf_task_pool_t
npool
= NULL;
35
36
/* ==================== [Macros] ============================================ */
37
38
/* ==================== [Global Functions] ================================== */
39
40
void
xf_main
(
void
)
41
{
42
npool
=
xf_ttask_pool_create
(
MAX_WORKERS
, 1000, 1);
43
xf_task_init_from_pool
(
npool
,
ntask
, (
void
*)1, 1);
44
}
45
46
/* ==================== [Static Functions] ================================== */
47
48
static
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
{
57
xf_task_pool_delete
(
npool
);
58
XF_LOGI
(
TAG
,
"delete npool"
);
59
}
60
61
}
xf_main
void xf_main(void)
Definition
xf_main.c:28
xf_task_pool_delete
xf_err_t xf_task_pool_delete(xf_task_pool_t pool)
删除任务池。
Definition
xf_task_pool.c:87
xf_task_init_from_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)
初始化任务。
Definition
xf_task_pool.c:108
xf_task_pool_t
void * xf_task_pool_t
任务池句柄。
Definition
xf_task_pool.h:43
xf_ttask_pool_create
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
TAG
#define TAG
Definition
xf_main.c:24
npool
static xf_task_pool_t npool
Definition
xf_main.c:34
ntask
static void ntask(xf_task_t task)
Definition
xf_main.c:48
MAX_WORKERS
#define MAX_WORKERS
Definition
xf_main.c:23
task
static void task(xf_task_t task)
Definition
xf_main.c:45
XF_LOGI
#define XF_LOGI(tag, format,...)
Definition
xf_log_uitls.h:44
xf_task_t
void * xf_task_t
任务句柄。
Definition
xf_task_manager.h:40
examples
task
task_pool
main
xf_main.c
生成于 2025年 一月 21日 星期二 17:25:09 , 为 XFusion API使用
1.9.8