/*
- * Copyright (C) 2006-2010 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2011 Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
{
if (!initialized)
return;
+ assert(t->error < 0);
PARA_INFO_LOG("unregistering %s (%s)\n", t->status,
- t->error <0? para_strerror(-t->error) : "shutdown");
+ para_strerror(-t->error));
if (t->pre_select)
list_del(&t->pre_select_node);
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;
if (!initialized)
return;
- list_for_each_entry_safe(t, tmp, &pre_select_list, pre_select_node)
+ list_for_each_entry_safe(t, tmp, &pre_select_list, pre_select_node) {
+ t->error = -E_SCHED_SHUTDOWN;
unregister_task(t);
- list_for_each_entry_safe(t, tmp, &post_select_list, post_select_node)
+ }
+ list_for_each_entry_safe(t, tmp, &post_select_list, post_select_node) {
+ t->error = -E_SCHED_SHUTDOWN;
unregister_task(t);
+ }
initialized = 0;
}