X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=client.c;h=038fc0134e52adcc041fa52c152a321b9818b58e;hb=408458ad84180244b6a2ac327d13685bfb2b0867;hp=b6a2f24157b7a01a63f9bbb13418c2c2326559dc;hpb=a24d175e6d093d6d9f6e583c3026e45924bad621;p=paraslash.git diff --git a/client.c b/client.c index b6a2f241..038fc013 100644 --- a/client.c +++ b/client.c @@ -23,11 +23,12 @@ INIT_CLIENT_ERRLISTS; +static struct sched sched; static struct client_task *ct; static struct stdin_task sit; static struct stdout_task sot; -static void supervisor_post_select(__a_unused struct sched *s, struct task *t) +static void supervisor_post_select(struct sched *s, struct task *t) { if (ct->task.error < 0) { t->error = ct->task.error; @@ -35,13 +36,13 @@ static void supervisor_post_select(__a_unused struct sched *s, struct task *t) } if (ct->status == CL_SENDING) { stdin_set_defaults(&sit); - register_task(&sit.task); + register_task(s, &sit.task); t->error = -E_TASK_STARTED; return; } if (ct->status == CL_RECEIVING) { stdout_set_defaults(&sot); - register_task(&sot.task); + register_task(s, &sot.task); t->error = -E_TASK_STARTED; return; } @@ -82,6 +83,7 @@ int main(int argc, char *argv[]) init_random_seed_or_die(); s.default_timeout.tv_sec = 1; s.default_timeout.tv_usec = 0; + /* * We add buffer tree nodes for stdin and stdout even though * only one of them will be needed. This simplifies the code @@ -89,13 +91,13 @@ int main(int argc, char *argv[]) */ sit.btrn = btr_new_node(&(struct btr_node_description) EMBRACE(.name = "stdin")); - ret = client_open(argc, argv, &ct, &client_loglevel, sit.btrn, NULL); + ret = client_open(argc, argv, &ct, &client_loglevel, sit.btrn, NULL, &sched); if (ret < 0) goto out; sot.btrn = btr_new_node(&(struct btr_node_description) EMBRACE(.name = "stdout", .parent = ct->btrn)); - register_task(&svt); - ret = schedule(&s); + register_task(&sched, &svt); + ret = schedule(&sched); out: client_close(ct); btr_free_node(sit.btrn);