From: Olivier Houchard Date: Wed, 1 Aug 2018 13:58:44 +0000 (+0200) Subject: MINOR: tasks: Allow tasklet_wakeup() to wakeup a task. X-Git-Tag: v1.9-dev2~162 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5d18718c8f85d43d3bc1c172e8538564ce0ad7ce;p=thirdparty%2Fhaproxy.git MINOR: tasks: Allow tasklet_wakeup() to wakeup a task. Modify tasklet_wakeup() so that it handles a task as well, and inserts it directly into the tasklet list, making it effectively a tasklet. This should make future developments easier. --- diff --git a/include/proto/task.h b/include/proto/task.h index cb3f9af43f..13398c53e1 100644 --- a/include/proto/task.h +++ b/include/proto/task.h @@ -106,6 +106,9 @@ extern int task_list_size[MAX_THREADS]; /* Number of task sin the task_list */ __decl_hathreads(extern HA_SPINLOCK_T rq_lock); /* spin lock related to run queue */ __decl_hathreads(extern HA_SPINLOCK_T wq_lock); /* spin lock related to wait queue */ + +static inline void task_insert_into_tasklet_list(struct task *t); + /* return 0 if task is in run queue, otherwise non-zero */ static inline int task_in_rq(struct task *t) { @@ -215,6 +218,10 @@ static inline struct task *task_unlink_rq(struct task *t) static inline void tasklet_wakeup(struct tasklet *tl) { + if (!TASK_IS_TASKLET(tl)) { + task_insert_into_tasklet_list((struct task *)tl); + return; + } if (!LIST_ISEMPTY(&tl->list)) return; LIST_ADDQ(&task_list[tid], &tl->list);