mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-28 06:11:32 +01:00
MINOR: tasks: Add a flag that tells if we're in the global runqueue.
How that we have bits available in task->state, add a flag that tells if we're in the global runqueue or not.
This commit is contained in:
parent
f0cea1ee3f
commit
76e45181b2
@ -181,6 +181,8 @@ static inline struct task *__task_unlink_rq(struct task *t)
|
||||
{
|
||||
HA_ATOMIC_SUB(&tasks_run_queue, 1);
|
||||
eb32sc_delete(&t->rq);
|
||||
if (t->state & TASK_GLOBAL)
|
||||
HA_ATOMIC_AND(&t->state, ~TASK_GLOBAL);
|
||||
if (likely(t->nice))
|
||||
HA_ATOMIC_SUB(&niced_tasks, 1);
|
||||
return t;
|
||||
|
||||
@ -32,6 +32,7 @@
|
||||
/* values for task->state */
|
||||
#define TASK_SLEEPING 0x0000 /* task sleeping */
|
||||
#define TASK_RUNNING 0x0001 /* the task is currently running */
|
||||
#define TASK_GLOBAL 0x0002 /* The task is currently in the global runqueue */
|
||||
|
||||
#define TASK_WOKEN_INIT 0x0100 /* woken up for initialisation purposes */
|
||||
#define TASK_WOKEN_TIMER 0x0200 /* woken up because of expired timer */
|
||||
|
||||
@ -143,6 +143,7 @@ redo:
|
||||
#ifdef USE_THREAD
|
||||
if (root == &rqueue) {
|
||||
global_rqueue_size++;
|
||||
HA_ATOMIC_OR(&t->state, TASK_GLOBAL);
|
||||
HA_SPIN_UNLOCK(TASK_RQ_LOCK, &rq_lock);
|
||||
} else
|
||||
#endif
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user