delaywork
头文件清单
接口清单
接口名称 功能简述 osal_delayedwork_init 初始化延迟工作对象 osal_delayedwork_destroy 销毁延迟工作对象 osal_delayedwork_schedule 将延迟工作提交到全局工作队列 osal_delayedwork_cancel_sync 同步取消延迟工作并等待其完成
Functions
osal_delayedwork_init
头文件清单
功能说明
- 初始化延迟工作对象,绑定回调处理函数
- 初始化后的延迟工作对象可通过
osal_delayedwork_schedule提交到全局工作队列 - 初始化后的延迟工作对象必须通过
osal_delayedwork_destroy释放
前置条件
- 调用前需确保 work 指针指向的内存空间已合法分配
- 该接口仅在 Linux 内核模式下可用(
__linux__且__KERNEL__宏已定义)
入参
名称 参数类型 详细说明 约束取值范围 work osal_delayedwork * 待初始化的延迟工作对象 非NULL handler osal_delayedwork_handler 延迟工作回调处理函数 非NULL
返回值
- 返回类型:int
返回值 文字含义 触发场景 OSAL_SUCCESS(0) 初始化成功 延迟工作对象初始化完成 OSAL_FAILURE(-1) 初始化失败 延迟工作对象初始化失败
osal_delayedwork_destroy
头文件清单
功能说明
- 销毁延迟工作对象,释放相关资源
- work 必须由
osal_delayedwork_init初始化获得 - 该接口可能释放内存,需确保 work 来源合法
前置条件
- work 指针指向的延迟工作对象已通过
osal_delayedwork_init初始化成功 - 该接口仅在 Linux 内核模式下可用(
__linux__且__KERNEL__宏已定义)
入参
名称 参数类型 详细说明 约束取值范围 work osal_delayedwork * 待销毁的延迟工作对象 非NULL,须由 osal_delayedwork_init初始化
osal_delayedwork_schedule
头文件清单
功能说明
- 将延迟工作提交到内核全局工作队列,在指定延迟时间后执行
- timeout 为 0 时表示立即执行
- 延迟时间到达后,系统在全局工作队列中执行绑定的回调处理函数
前置条件
- work 指针指向的延迟工作对象已通过
osal_delayedwork_init初始化成功 - 该接口仅在 Linux 内核模式下可用(
__linux__且__KERNEL__宏已定义)
入参
名称 参数类型 详细说明 约束取值范围 work osal_delayedwork * 待提交的延迟工作对象 非NULL,须已初始化 timeout int 延迟等待的 jiffies 数 0表示立即执行,>0表示延迟执行的 jiffies 数
返回值
- 返回类型:int
返回值 文字含义 触发场景 OSAL_SUCCESS(0) 提交成功 延迟工作成功提交到全局工作队列 OSAL_FAILURE(-1) 提交失败 延迟工作提交到全局工作队列失败
osal_delayedwork_cancel_sync
头文件清单
功能说明
- 取消延迟工作并同步等待其执行完成
- 若延迟工作正在执行中,该接口将阻塞等待直到工作执行完成
- 若延迟工作尚未开始执行,该接口将直接取消该工作
前置条件
- work 指针指向的延迟工作对象已通过
osal_delayedwork_init初始化成功 - 该接口仅在 Linux 内核模式下可用(
__linux__且__KERNEL__宏已定义)
入参
名称 参数类型 详细说明 约束取值范围 work osal_delayedwork * 待取消的延迟工作对象 非NULL,须已初始化
返回值
- 返回类型:int
返回值 文字含义 触发场景 OSAL_SUCCESS(0) 取消成功 延迟工作取消成功 OSAL_FAILURE(-1) 取消失败 延迟工作取消失败
Type definitions
osal_delayedwork_handler
使用说明:作为 osal_delayedwork_init 的 handler 参数类型,定义延迟工作回调处理函数的原型。
Structures
osal_delayedwork_
typedef struct osal_delayedwork_ {
void *work;
void (*handler)(struct osal_delayedwork_ *delayedwork);
} osal_delayedwork;
成员说明:
成员名称 数据类型 描述 work void * 延迟工作底层实现句柄 handler void ()(struct osal_delayedwork_ delayedwork) 延迟工作回调处理函数指针