10#ifndef __TAL_WORKQUEUE_H__
11#define __TAL_WORKQUEUE_H__
17#include "tuya_cloud_types.h"
18#include "tal_thread.h"
25typedef VOID_T* WORKQUEUE_HANDLE;
26typedef VOID_T (*WORKQUEUE_CB)(VOID_T *data);
32typedef BOOL_T (*WORKQUEUE_TRAVERSE_CB)(
WORK_ITEM_T*item, VOID_T *ctx);
116typedef VOID_T* DELAYED_WORK_HANDLE;
129 DELAYED_WORK_HANDLE *delayed_work);
141 TIME_MS interval, LOOP_TYPE type);
thread parameters
Definition: tal_thread.h:73
Definition: tal_workqueue.h:28
THREAD_HANDLE tal_workqueue_get_thread(WORKQUEUE_HANDLE handle)
get thread handle of the workqueue
OPERATE_RET tal_workqueue_stop_delayed(DELAYED_WORK_HANDLE delayed_work)
stop delayed work
OPERATE_RET tal_workqueue_schedule(WORKQUEUE_HANDLE handle, WORKQUEUE_CB cb, VOID_T *data)
put work task in workqueue
UINT16_T tal_workqueue_get_num(WORKQUEUE_HANDLE handle)
get the workqueue item number
OPERATE_RET tal_workqueue_traverse(WORKQUEUE_HANDLE handle, WORKQUEUE_TRAVERSE_CB cb, VOID_T *ctx)
traverse the queue with specific callback
OPERATE_RET tal_workqueue_cancel(WORKQUEUE_HANDLE handle, WORKQUEUE_CB cb, VOID_T *data)
cancel 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
OPERATE_RET tal_workqueue_cancel_delayed(DELAYED_WORK_HANDLE delayed_work)
cancel delayed work
OPERATE_RET tal_workqueue_start_delayed(DELAYED_WORK_HANDLE delayed_work, TIME_MS interval, LOOP_TYPE type)
put work in workqueue after delay
OPERATE_RET tal_workqueue_init_delayed(WORKQUEUE_HANDLE handle, WORKQUEUE_CB cb, VOID_T *data, DELAYED_WORK_HANDLE *delayed_work)
init delayed work in workqueue
OPERATE_RET tal_workqueue_schedule_instant(WORKQUEUE_HANDLE handle, WORKQUEUE_CB cb, VOID_T *data)
put work task in workqueue, instant will be dequeued first
OPERATE_RET tal_workqueue_release(WORKQUEUE_HANDLE handle)
release the workqueue