X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=client.c;h=4208579b5e756bbbee9ec03cd10613e13c9a596e;hp=da1fab27d754ed1c4f07d7f0c6ed2491f71873ac;hb=d27b31524e1d60ad4fdbeb606bba31ba0ee54048;hpb=1d6e721e000e7d7aed3411289795082dfa2726a9 diff --git a/client.c b/client.c index da1fab27..4208579b 100644 --- a/client.c +++ b/client.c @@ -22,7 +22,7 @@ static struct client_task *ct; static struct stdin_task sit; static struct stdout_task sot; -static void supervisor_pre_select(struct sched *s, struct task *t) +static void supervisor_post_select(__a_unused struct sched *s, struct task *t) { if (ct->task.error < 0) { t->error = ct->task.error; @@ -36,7 +36,7 @@ static void supervisor_pre_select(struct sched *s, struct task *t) ct->in_loaded = &sit.loaded; ct->in_error = &sit.task.error; t->error = -E_TASK_STARTED; - goto min_delay; + return; } if (ct->status == CL_RECEIVING) { stdout_set_defaults(&sot); @@ -45,16 +45,12 @@ static void supervisor_pre_select(struct sched *s, struct task *t) sot.input_error = &ct->task.error; register_task(&sot.task); t->error = -E_TASK_STARTED; - goto min_delay; + return; } - return; -min_delay: - s->timeout.tv_sec = 0; - s->timeout.tv_usec = 1; } static struct task svt = { - .pre_select = supervisor_pre_select, + .post_select = supervisor_post_select, .status = "supervisor task" }; @@ -79,12 +75,12 @@ int main(int argc, char *argv[]) { int ret; - struct sched s; + static struct sched s; s.default_timeout.tv_sec = 1; s.default_timeout.tv_usec = 0; ret = client_open(argc, argv, &ct); - if (ret < 0) /* can not use PARA_LOG here */ + if (ret < 0) /* can not use PARA_LOG here because ct is NULL */ exit(EXIT_FAILURE); register_task(&svt); ret = schedule(&s);