mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 23:27:04 +02:00
MINOR: task/thread: factor out a wake-up condition
The wakeup condition in task_wakeup() is redundant as it is already validated by the CAS. Better move the __task_wakeup() call there, it also has the merit of being easier to audit this way. This also reduces the code size by around 1.8 kB : $ size haproxy-? text data bss dec hex filename 2153806 100208 1307676 3561690 3658da haproxy-1 2152094 100208 1307676 3559978 36522a haproxy-2
This commit is contained in:
parent
a70bfaaf8b
commit
8c12e2f785
@ -153,11 +153,11 @@ static inline void task_wakeup(struct task *t, unsigned int f)
|
|||||||
|
|
||||||
state = _HA_ATOMIC_OR(&t->state, f);
|
state = _HA_ATOMIC_OR(&t->state, f);
|
||||||
while (!(state & (TASK_RUNNING | TASK_QUEUED))) {
|
while (!(state & (TASK_RUNNING | TASK_QUEUED))) {
|
||||||
if (_HA_ATOMIC_CAS(&t->state, &state, state | TASK_QUEUED))
|
if (_HA_ATOMIC_CAS(&t->state, &state, state | TASK_QUEUED)) {
|
||||||
|
__task_wakeup(t, root);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!(state & (TASK_QUEUED | TASK_RUNNING)))
|
|
||||||
__task_wakeup(t, root);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* change the thread affinity of a task to <thread_mask> */
|
/* change the thread affinity of a task to <thread_mask> */
|
||||||
|
Loading…
Reference in New Issue
Block a user