mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-18 19:50:54 +00:00
MINOR: task: add an application specific flag to the state: TASK_F_USR1
This flag will be usable by any application. It will be preserved across wakeups so the application can use it to do various stuff. Some I/O handlers will soon benefit from this.
This commit is contained in:
parent
144f84a09d
commit
6fa8bcdc78
@ -56,7 +56,8 @@
|
|||||||
TASK_WOKEN_RES)
|
TASK_WOKEN_RES)
|
||||||
|
|
||||||
#define TASK_F_TASKLET 0x00008000 /* nature of this task: 0=task 1=tasklet */
|
#define TASK_F_TASKLET 0x00008000 /* nature of this task: 0=task 1=tasklet */
|
||||||
/* unused: 0x10000..0x80000000 */
|
#define TASK_F_USR1 0x00010000 /* preserved user flag 1, application-specific, def:0 */
|
||||||
|
/* unused: 0x20000..0x80000000 */
|
||||||
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
@ -487,7 +487,7 @@ unsigned int run_tasks_from_lists(unsigned int budgets[])
|
|||||||
|
|
||||||
budgets[queue]--;
|
budgets[queue]--;
|
||||||
t = (struct task *)LIST_ELEM(tl_queues[queue].n, struct tasklet *, list);
|
t = (struct task *)LIST_ELEM(tl_queues[queue].n, struct tasklet *, list);
|
||||||
state = t->state & (TASK_SHARED_WQ|TASK_SELF_WAKING|TASK_HEAVY|TASK_F_TASKLET|TASK_KILLED);
|
state = t->state & (TASK_SHARED_WQ|TASK_SELF_WAKING|TASK_HEAVY|TASK_F_TASKLET|TASK_KILLED|TASK_F_USR1);
|
||||||
|
|
||||||
ti->flags &= ~TI_FL_STUCK; // this thread is still running
|
ti->flags &= ~TI_FL_STUCK; // this thread is still running
|
||||||
activity[tid].ctxsw++;
|
activity[tid].ctxsw++;
|
||||||
@ -533,7 +533,7 @@ unsigned int run_tasks_from_lists(unsigned int budgets[])
|
|||||||
|
|
||||||
LIST_DEL_INIT(&((struct tasklet *)t)->list);
|
LIST_DEL_INIT(&((struct tasklet *)t)->list);
|
||||||
__ha_barrier_store();
|
__ha_barrier_store();
|
||||||
state = _HA_ATOMIC_XCHG(&t->state, state | TASK_RUNNING);
|
state = _HA_ATOMIC_XCHG(&t->state, state|TASK_RUNNING|TASK_F_USR1);
|
||||||
__ha_barrier_atomic_store();
|
__ha_barrier_atomic_store();
|
||||||
|
|
||||||
/* OK then this is a regular task */
|
/* OK then this is a regular task */
|
||||||
|
Loading…
Reference in New Issue
Block a user