diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2020-08-24 08:45:29 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2020-09-14 10:17:00 +0200 |
commit | 0d4d157cf0d42206491b7a1b417c9904a9abd553 (patch) | |
tree | aa744b0df43bd8ea3e55de6975d840edabc228ef /common | |
parent | f9a2925439882944a50184ceec1aebe6d101d244 (diff) | |
download | barebox-0d4d157cf0d42206491b7a1b417c9904a9abd553.tar.gz barebox-0d4d157cf0d42206491b7a1b417c9904a9abd553.tar.xz |
workqueues: Add support for delayed work
Sometimes it's necessary to do some work after a delay. Add support for
this case.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'common')
-rw-r--r-- | common/workqueue.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/common/workqueue.c b/common/workqueue.c index 6fdd4e42ea..dc6941dec1 100644 --- a/common/workqueue.c +++ b/common/workqueue.c @@ -7,6 +7,9 @@ static void wq_do_pending_work(struct work_queue *wq) struct work_struct *work, *tmp; list_for_each_entry_safe(work, tmp, &wq->work, list) { + if (work->delayed && get_time_ns() < work->timeout) + continue; + list_del(&work->list); wq->fn(work); } |