TuyaOS
tal_workq_service.h
浏览该文件的文档.
1
11#ifndef __TAL_WORKQ_SERVICE_H__
12#define __TAL_WORKQ_SERVICE_H__
13
14#include "tal_workqueue.h"
15
19typedef enum {
29
35OPERATE_RET tal_workq_init(VOID_T);
36
44WORKQUEUE_HANDLE tal_workq_get_handle(WORKQ_SERVICE_E service);
45
55OPERATE_RET tal_workq_schedule(WORKQ_SERVICE_E service, WORKQUEUE_CB cb, VOID_T *data);
56
66OPERATE_RET tal_workq_schedule_instant(WORKQ_SERVICE_E service, WORKQUEUE_CB cb, VOID_T *data);
67
77OPERATE_RET tal_workq_cancel(WORKQ_SERVICE_E service, WORKQUEUE_CB cb, VOID_T *data);
78
89
93typedef struct {
94 DELAYED_WORK_HANDLE *delayed_work; // delayed work handle
95 WORKQUEUE_CB delayed_work_cb; // delayed work callback
97
108OPERATE_RET tal_workq_init_delayed(WORKQ_SERVICE_E service, WORKQUEUE_CB cb, VOID_T *data,
109 DELAYED_WORK_HANDLE *delayed_work);
110
120OPERATE_RET tal_workq_start_delayed(DELAYED_WORK_HANDLE delayed_work,
121 TIME_MS interval, LOOP_TYPE type);
122
130OPERATE_RET tal_workq_stop_delayed(DELAYED_WORK_HANDLE delayed_work);
131
139OPERATE_RET tal_workq_cancel_delayed(DELAYED_WORK_HANDLE delayed_work);
140
141#endif //__TAL_WORKQ_SERVICE_H__
delayed work entry definition
Definition: tal_workq_service.h:93
OPERATE_RET tal_workq_cancel(WORKQ_SERVICE_E service, WORKQUEUE_CB cb, VOID_T *data)
cancel work task in workqueue
OPERATE_RET tal_workq_init(VOID_T)
init ty work queue service
UINT16_T tal_workq_get_num(WORKQ_SERVICE_E service)
get current work number in work queue.
WORKQUEUE_HANDLE tal_workq_get_handle(WORKQ_SERVICE_E service)
get handle of workqueue service
OPERATE_RET tal_workq_cancel_delayed(DELAYED_WORK_HANDLE delayed_work)
cancel delay work
OPERATE_RET tal_workq_schedule_instant(WORKQ_SERVICE_E service, WORKQUEUE_CB cb, VOID_T *data)
put work task in workqueue, instant will be dequeued first
WORKQ_SERVICE_E
TuyaOS provides developers with two workqueue service for convenience.
Definition: tal_workq_service.h:19
@ WORKQ_SYSTEM
Definition: tal_workq_service.h:23
@ WORKQ_HIGHTPRI
Definition: tal_workq_service.h:27
OPERATE_RET tal_workq_stop_delayed(DELAYED_WORK_HANDLE delayed_work)
stop delayed work
OPERATE_RET tal_workq_start_delayed(DELAYED_WORK_HANDLE delayed_work, TIME_MS interval, LOOP_TYPE type)
put work task in workqueue after delay
OPERATE_RET tal_workq_init_delayed(WORKQ_SERVICE_E service, WORKQUEUE_CB cb, VOID_T *data, DELAYED_WORK_HANDLE *delayed_work)
init delayed work task
OPERATE_RET tal_workq_schedule(WORKQ_SERVICE_E service, WORKQUEUE_CB cb, VOID_T *data)
add work to work queue
tuya workqueue module