mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 06:11:32 +02:00
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.
This commit is contained in:
parent
ed0f207ef5
commit
5d18718c8f
@ -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 rq_lock); /* spin lock related to run queue */
|
||||||
__decl_hathreads(extern HA_SPINLOCK_T wq_lock); /* spin lock related to wait 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 */
|
/* return 0 if task is in run queue, otherwise non-zero */
|
||||||
static inline int task_in_rq(struct task *t)
|
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)
|
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))
|
if (!LIST_ISEMPTY(&tl->list))
|
||||||
return;
|
return;
|
||||||
LIST_ADDQ(&task_list[tid], &tl->list);
|
LIST_ADDQ(&task_list[tid], &tl->list);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user