From a96156faf11d97e50687732f95a2d589c39dc194 Mon Sep 17 00:00:00 2001 From: tangyuxin <462747508@qq.com> Date: Sun, 7 Feb 2021 10:30:25 +0800 Subject: [workqueue] 提交正在执行的工作,返回 BUSY MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/drivers/src/workqueue.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'components/drivers/src') diff --git a/components/drivers/src/workqueue.c b/components/drivers/src/workqueue.c index ce1ca071c3..f6bb6114aa 100644 --- a/components/drivers/src/workqueue.c +++ b/components/drivers/src/workqueue.c @@ -90,6 +90,7 @@ static rt_err_t _workqueue_submit_work(struct rt_workqueue *queue, struct rt_work *work, rt_tick_t ticks) { rt_base_t level; + rt_err_t err; level = rt_hw_interrupt_disable(); /* remove list */ @@ -103,6 +104,11 @@ static rt_err_t _workqueue_submit_work(struct rt_workqueue *queue, rt_list_insert_after(queue->work_list.prev, &(work->list)); work->flags |= RT_WORK_STATE_PENDING; work->workqueue = queue; + err = RT_EOK; + } + else + { + err = -RT_EBUSY; } /* whether the workqueue is doing work */ @@ -118,7 +124,7 @@ static rt_err_t _workqueue_submit_work(struct rt_workqueue *queue, { rt_hw_interrupt_enable(level); } - return RT_EOK; + return err; } else if (ticks < RT_TICK_MAX / 2) { -- cgit v1.3.1