mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-11 16:29:36 +00:00
[MINOR] task: new function task_schedule() to schedule a wake up
This function is used when a task should be woken up at most at a given date. This will be used with rate shapers.
This commit is contained in:
parent
d634e7c673
commit
26e4881a2d
@ -224,6 +224,23 @@ static inline void task_queue(struct task *task)
|
||||
__task_queue(task);
|
||||
}
|
||||
|
||||
/* Ensure <task> will be woken up at most at <when>. If the task is already in
|
||||
* the run queue (but not running), nothing is done. It may be used that way
|
||||
* with a delay : task_schedule(task, tick_add(now_ms, delay));
|
||||
*/
|
||||
static inline void task_schedule(struct task *task, int when)
|
||||
{
|
||||
if (task_in_rq(task))
|
||||
return;
|
||||
|
||||
if (task_in_wq(task))
|
||||
when = tick_first(when, task->expire);
|
||||
|
||||
task->expire = when;
|
||||
if (!task_in_wq(task) || tick_is_lt(task->expire, task->wq.key))
|
||||
__task_queue(task);
|
||||
}
|
||||
|
||||
/*
|
||||
* This does 4 things :
|
||||
* - wake up all expired tasks
|
||||
|
Loading…
Reference in New Issue
Block a user