summaryrefslogtreecommitdiff
path: root/lib/workqueue.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/workqueue.c')
-rw-r--r--lib/workqueue.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/workqueue.c b/lib/workqueue.c
index 2a8326c056..92869594dd 100644
--- a/lib/workqueue.c
+++ b/lib/workqueue.c
@@ -135,10 +135,11 @@ static int work_queue_schedule(struct work_queue *wq, unsigned int delay)
/* Schedule timer if there's a delay, otherwise just schedule
* as an 'event'
*/
- if (delay > 0)
+ if (delay > 0) {
thread_add_timer_msec(wq->master, work_queue_run, wq,
delay, &wq->thread);
- else
+ thread_ignore_late_timer(wq->thread);
+ } else
thread_add_event(wq->master, work_queue_run, wq, 0,
&wq->thread);
@@ -237,7 +238,7 @@ void work_queue_unplug(struct work_queue *wq)
* will reschedule itself if required,
* otherwise work_queue_item_add
*/
-int work_queue_run(struct thread *thread)
+void work_queue_run(struct thread *thread)
{
struct work_queue *wq;
struct work_queue_item *item, *titem;
@@ -387,6 +388,4 @@ stats:
} else if (wq->spec.completion_func)
wq->spec.completion_func(wq);
-
- return 0;
}