Loading include/linux/workqueue.h +1 −0 Original line number Diff line number Diff line Loading @@ -207,6 +207,7 @@ extern int queue_delayed_work_on(int cpu, struct workqueue_struct *wq, extern void flush_workqueue(struct workqueue_struct *wq); extern void flush_scheduled_work(void); extern void flush_delayed_work(struct delayed_work *work); extern int schedule_work(struct work_struct *work); extern int schedule_work_on(int cpu, struct work_struct *work); Loading kernel/workqueue.c +18 −0 Original line number Diff line number Diff line Loading @@ -639,6 +639,24 @@ int schedule_delayed_work(struct delayed_work *dwork, } EXPORT_SYMBOL(schedule_delayed_work); /** * flush_delayed_work - block until a dwork_struct's callback has terminated * @dwork: the delayed work which is to be flushed * * Any timeout is cancelled, and any pending work is run immediately. */ void flush_delayed_work(struct delayed_work *dwork) { if (del_timer(&dwork->timer)) { struct cpu_workqueue_struct *cwq; cwq = wq_per_cpu(keventd_wq, get_cpu()); __queue_work(cwq, &dwork->work); put_cpu(); } flush_work(&dwork->work); } EXPORT_SYMBOL(flush_delayed_work); /** * schedule_delayed_work_on - queue work in global workqueue on CPU after delay * @cpu: cpu to use Loading Loading
include/linux/workqueue.h +1 −0 Original line number Diff line number Diff line Loading @@ -207,6 +207,7 @@ extern int queue_delayed_work_on(int cpu, struct workqueue_struct *wq, extern void flush_workqueue(struct workqueue_struct *wq); extern void flush_scheduled_work(void); extern void flush_delayed_work(struct delayed_work *work); extern int schedule_work(struct work_struct *work); extern int schedule_work_on(int cpu, struct work_struct *work); Loading
kernel/workqueue.c +18 −0 Original line number Diff line number Diff line Loading @@ -639,6 +639,24 @@ int schedule_delayed_work(struct delayed_work *dwork, } EXPORT_SYMBOL(schedule_delayed_work); /** * flush_delayed_work - block until a dwork_struct's callback has terminated * @dwork: the delayed work which is to be flushed * * Any timeout is cancelled, and any pending work is run immediately. */ void flush_delayed_work(struct delayed_work *dwork) { if (del_timer(&dwork->timer)) { struct cpu_workqueue_struct *cwq; cwq = wq_per_cpu(keventd_wq, get_cpu()); __queue_work(cwq, &dwork->work); put_cpu(); } flush_work(&dwork->work); } EXPORT_SYMBOL(flush_delayed_work); /** * schedule_delayed_work_on - queue work in global workqueue on CPU after delay * @cpu: cpu to use Loading