Commit Graph

27 Commits

Author SHA1 Message Date
Meco Man 3c05a4e719 [compoenets] auto & manual formatted 2021-03-08 18:19:04 +08:00
tangyuxin 4f2359d34c [workqueue] 修复临界条件线程意外挂起问题
线程判断任务链表为空时,开中断挂起线程,在挂起线程的过程中,提交的任务不会被执行。

将线程的挂起与恢复放在中断保护内,确保挂起挂起恢复是一个完整的过程
2021-02-22 17:10:33 +08:00
tangyuxin 791b8a35de [workqueue] 系统默认工作队列初始化阶段提前 2021-02-22 11:23:20 +08:00
tangyuxin a96156faf1 [workqueue] 提交正在执行的工作,返回 BUSY 2021-02-07 10:30:25 +08:00
tangyuxin 83dca09e1c [workqueue] 修复提交工作后立即取消,获取无效工作任务的问题
当高优先级任务提交工作后,立即取消。此时队列被唤醒,下面紧接着获取链表中第一个任务。但此时已经是空链表了。

每次线程被唤醒。检查当前任务链表是否未空
2021-02-06 21:54:25 +08:00
tangyuxin 7eabe5c9e9 [workqueue] 取消正在执行的工作返回BUSY 2021-02-06 20:39:52 +08:00
tangyuxin 3ef3fb50af [workqueue] 队列销毁时取消所有工作并释放内核对象 2021-02-06 20:15:50 +08:00
tangyuxin d6b44ca52e [workqueue] 支持取消延时工作任务 2021-02-06 20:08:31 +08:00
tangyuxin 0230d32ca0 添加断言及注释 2021-02-01 15:02:22 +08:00
tangyuxin b42506fb73 优化功能重复的代码 2021-02-01 15:02:21 +08:00
tangyuxin c5218b5eee 修复紧急工作队列插入问题
紧急工作仍插入队列尾部,先将其插入队列头部
2021-02-01 15:02:20 +08:00
tangyuxin 5b52e6c7e3 修复同步取消锁中断等信号的问题 2021-02-01 15:02:19 +08:00
tangyuxin 5a16a2060e 定时处理函数临界区保护更加完整
定时器回调函数中,添加工作之前打开了中断。此时在极端情况下,会导致状态不对。
2021-02-01 15:02:18 +08:00
tangyuxin 10b5aa8f59 合并 cancel 和 cancel_delayed 函数,优化代码体积
合并 _workqueue_cancel_work 和 _workqueue_cancel_delayed_work 函数,优化代码体积
2021-02-01 15:02:17 +08:00
tangyuxin 0c87becb3e 合并 submit 和 submit_delayed,优化代码体积
将 _workqueue_submit_delayed_work 和 _workqueue_submit_work 函数合并成一个。优化代码体积
2021-02-01 15:02:16 +08:00
tangyuxin c3ba2b07fa [components][workqueue] Modify system work queue initialization level 2020-12-02 14:30:31 +08:00
tangyuxin badd211457 [components][drivers][ipc] 完善工作队列,增强稳定性
1. 可直接提交延时任务, 无需额外调用延时初始化
2. 修复延时任务 PENDING 时,取消任务会递归调用的问题
2019-08-05 14:18:15 +08:00
EvalZero 83b6260b3f [components][workqueue]improve delayed work for reinit. 2019-04-22 11:43:45 +08:00
EvalZero c3ee1be7ee [components][drivers][workqueue] increase the default stack size of the workqueue thread. 2019-04-03 18:26:55 +08:00
EvalZero c7ccb4f532 [components][drivers][workqueue] add system default workqueue and delayed work. 2019-03-30 14:29:30 +08:00
Bernard Xiong 2c0640a178 [license] Change license to Apache. 2018-10-14 19:37:18 +08:00
bernard a8a7d60877 [DeviceDrivers] Remove compiling warning in workqueue. 2017-10-18 09:29:30 +08:00
bernard 19aa36e830 [DeviceDrivers] Add sync mode in work queue. 2017-10-17 17:53:01 +08:00
Bernard Xiong c442db81fc [DeviceDrivers] Fix the re-work issue in workqueue. 2017-02-27 00:58:11 +08:00
bernard b4757b950f [DeviceDrivers] Add critical_work for wqueue. 2017-01-31 13:17:04 +08:00
Bernard Xiong 0ad17f462d [DeviceDrivers] Add modification under Linux 2014-08-04 16:40:40 +08:00
bernard 005014e7d0 [Drivers] Add workqueue implementation. 2014-07-13 07:27:57 +08:00