X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=sched.c;h=4df32fa1b16aa388eb46683bdd307c2a127c070c;hp=b9d642864624cd796e3853331cc9a652378c41c5;hb=9902762e74e41165dfa18606411cef86ac7afd5d;hpb=e6940831fbcf21dd0e6243ca89ea0c7f8b195d9e diff --git a/sched.c b/sched.c index b9d64286..4df32fa1 100644 --- a/sched.c +++ b/sched.c @@ -32,11 +32,12 @@ struct timeval *now = &now_struct; * If the pre_select pointer of \a t is not \p NULL, it is removed from * the pre_select list of the scheduler. Same goes for \a post_select. */ -void unregister_task(struct task *t) +static void unregister_task(struct task *t) { if (!initialized) return; - PARA_INFO_LOG("unregistering %s (%p)\n", t->status, t); + PARA_INFO_LOG("unregistering %s (%s)\n", t->status, + t->error <0? para_strerror(-t->error) : "shutdown"); if (t->pre_select) list_del(&t->pre_select_node); if (t->post_select) @@ -104,6 +105,8 @@ int schedule(struct sched *s) if (!initialized) return -E_NOT_INITIALIZED; + if (!s->select_function) + s->select_function = para_select; gettimeofday(now, NULL); again: FD_ZERO(&s->rfds); @@ -113,7 +116,7 @@ again: sched_preselect(s); if (list_empty(&pre_select_list) && list_empty(&post_select_list)) return 0; - ret = para_select(s->max_fileno + 1, &s->rfds, &s->wfds, &s->timeout); + ret = s->select_function(s->max_fileno + 1, &s->rfds, &s->wfds, &s->timeout); if (ret < 0) return ret; gettimeofday(now, NULL);