TuyaOS
uni_work_queue.h
1#ifndef __UNI_WORK_QUEUE_H__
2#define __UNI_WORK_QUEUE_H__
3
4#include "ty_work_queue.h"
5#include "tal_thread.h"
6#include "tal_workqueue.h"
7
8typedef PVOID_T WORK_QUEUE_HANDLE;
9typedef VOID (*WK_CALLBACK)(VOID *data);
10
11STATIC INLINE OPERATE_RET work_queue_create(WORK_QUEUE_HANDLE *phand, UINT_T stack_size, INT_T pri, UINT_T work_num)
12{
13 THREAD_CFG_T thread_cfg = {
14 .stackDepth = stack_size,
15 .priority = pri,
16 .thrdname = "wk_th-u"
17 };
18 return tal_workqueue_create(work_num, &thread_cfg, phand);
19}
20
21
22STATIC INLINE OPERATE_RET work_queue_add(WORK_QUEUE_HANDLE hand, WK_CALLBACK cb, VOID *data)
23{
24 return tal_workqueue_schedule(hand, (TY_WK_CB)cb, (VOID *)data);
25}
26
27#endif
thread parameters
Definition: tal_thread.h:73
tuya workqueue module
OPERATE_RET tal_workqueue_schedule(WORKQUEUE_HANDLE handle, WORKQUEUE_CB cb, VOID_T *data)
put work task in workqueue
OPERATE_RET tal_workqueue_create(CONST UINT16_T queue_len, THREAD_CFG_T *thread_cfg, WORKQUEUE_HANDLE *handle)
create and initialize a workqueue which runs in thread context
provide work queue operate api
VOID(* TY_WK_CB)(VOID *data)
call back prototype of work
Definition: ty_work_queue.h:23