X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=sched.c;h=44e66c9b62664eb3add50d9924db6b311ea7e273;hp=4df32fa1b16aa388eb46683bdd307c2a127c070c;hb=8fbaafaaaea2ec1e3873bdcf5cb2de3a643fc5e6;hpb=4fc040bcb794981726c20759ce6ad4aadebc3ff4 diff --git a/sched.c b/sched.c index 4df32fa1..44e66c9b 100644 --- a/sched.c +++ b/sched.c @@ -1,11 +1,12 @@ /* - * Copyright (C) 2006-2008 Andre Noll + * Copyright (C) 2006-2009 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ /** \file sched.c Paraslash's scheduling functions. */ +#include #include /* readdir() */ #include #include @@ -43,14 +44,14 @@ static void unregister_task(struct task *t) if (t->post_select) list_del(&t->post_select_node); t->error = -E_TASK_UNREGISTERED; -}; +} static void sched_preselect(struct sched *s) { struct task *t, *tmp; list_for_each_entry_safe(t, tmp, &pre_select_list, pre_select_node) { - if (t->error >= 0) + if (t->error >= 0 && t->pre_select) t->pre_select(s, t); // PARA_INFO_LOG("%s \n", t->status); if (t->error >= 0) @@ -135,7 +136,7 @@ static void init_sched(void) INIT_LIST_HEAD(&pre_select_list); INIT_LIST_HEAD(&post_select_list); initialized = 1; -}; +} /** * Add a task to the scheduler. @@ -157,7 +158,7 @@ void register_task(struct task *t) list_add_tail(&t->pre_select_node, &pre_select_list); } if (t->post_select) { - PARA_DEBUG_LOG("post_select: %p\n", &t->pre_select); + PARA_DEBUG_LOG("post_select: %p\n", &t->post_select); list_add_tail(&t->post_select_node, &post_select_list); } } @@ -179,7 +180,7 @@ void sched_shutdown(void) list_for_each_entry_safe(t, tmp, &post_select_list, post_select_node) unregister_task(t); initialized = 0; -}; +} /** * Get the list of all registered tasks.