X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=client.c;h=003c1e609f8ce1e606fecd9ad3b7092e76987936;hp=da1fab27d754ed1c4f07d7f0c6ed2491f71873ac;hb=ddd7cd853044105f329a2c70cce2d8f1470f559e;hpb=1d6e721e000e7d7aed3411289795082dfa2726a9;ds=sidebyside diff --git a/client.c b/client.c index da1fab27..003c1e60 100644 --- a/client.c +++ b/client.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1997-2008 Andre Noll + * Copyright (C) 1997-2009 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -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,29 +36,26 @@ 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); - sot.buf = ct->buf; + sot.bufp = &ct->buf; sot.loaded = &ct->loaded; 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); +static int client_loglevel; /* loglevel */ +INIT_STDERR_LOGGING(client_loglevel); /** @@ -79,12 +76,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 */ + ret = client_open(argc, argv, &ct, &client_loglevel); + if (ret < 0) /* can not use PARA_LOG here because ct is NULL */ exit(EXIT_FAILURE); register_task(&svt); ret = schedule(&s);