X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=client.c;h=4208579b5e756bbbee9ec03cd10613e13c9a596e;hp=c923552787fe4843c158e8d9e7a11a05b0e9852b;hb=6442f07bb08eb6e557086587f997b1785ea18ef7;hpb=41fd9d94b3b37a8fdc3ed0326da893d1d3788189 diff --git a/client.c b/client.c index c9235527..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,13 @@ 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" }; INIT_STDERR_LOGGING(ct->conf.loglevel_arg); @@ -78,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);