From af754fc88f8a37939af9efbec22a8f0530d35c4e Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sun, 29 Jun 2008 19:25:52 +0200 Subject: [PATCH] [OPTIM] shrink wake_expired_tasks() by using task_wakeup() It's not worth duplicating task_wakeup() in wake_expired_tasks(). Calling it reduces code size and slightly improves performance. --- src/task.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/task.c b/src/task.c index f57df200b..2d35e2177 100644 --- a/src/task.c +++ b/src/task.c @@ -179,8 +179,6 @@ void wake_expired_tasks(struct timeval *next) do { eb = eb32_first(&timers[tree]); while (eb) { - struct eb32_node *next_eb; - task = eb32_entry(eb, struct task, eb); if ((now_ms - eb->key) & TIMER_SIGN_BIT) { /* note that we don't need this check for the @@ -190,14 +188,9 @@ void wake_expired_tasks(struct timeval *next) return; } - /* detach the task from the queue */ - next_eb = eb32_next(eb); - eb32_delete(eb); - eb = next_eb; - - /* and add the task to the run queue */ - DLIST_ADD(run_queue, &task->qlist); - task->state = TASK_RUNNING; + /* detach the task from the queue and add the task to the run queue */ + eb = eb32_next(eb); + _task_wakeup(task); } tree = (tree + 1) & TIMER_TREE_MASK; } while (((tree - now_tree) & TIMER_TREE_MASK) < TIMER_TREES/2);