mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-24 04:11:02 +01: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);
|
||||
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;
|
||||
}
|
||||
if (!(state & (TASK_QUEUED | TASK_RUNNING)))
|
||||
__task_wakeup(t, root);
|
||||
}
|
||||
}
|
||||
|
||||
/* change the thread affinity of a task to <thread_mask> */
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user