mirror of
https://github.com/haproxy/haproxy.git
synced 2026-06-09 08:51:28 -04:00
[MINOR] sched: permit a task to stay up between calls
If a task wants to stay in the run queue, it is possible. It just needs to wake itself up. We just want to ensure that a reniced task will be processed at the right instant.
This commit is contained in:
parent
26ca34e66e
commit
135a113e36
1 changed files with 7 additions and 0 deletions
|
|
@ -225,6 +225,13 @@ void process_runnable_tasks(int *next)
|
|||
task_queue(t);
|
||||
expire = tick_first_2nz(expire, t->expire);
|
||||
}
|
||||
|
||||
/* if the task has put itself back into the run queue, we want to ensure
|
||||
* it will be served at the proper time, especially if it's reniced.
|
||||
*/
|
||||
if (unlikely(task_in_rq(t)) && (!eb || tick_is_lt(t->rq.key, eb->key))) {
|
||||
eb = eb32_lookup_ge(&rqueue, rqueue_ticks - TIMER_LOOK_BACK);
|
||||
}
|
||||
}
|
||||
}
|
||||
*next = expire;
|
||||
|
|
|
|||
Loading…
Reference in a new issue