X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=stdin.c;h=afbe35f8eaf2f74a7e04437e5c60de1a2a6a9b1b;hp=649d464b485142263c768dbfb4698519d3c5aee2;hb=d85091bebd5abb6f473a31dd118f4d853d1317c9;hpb=5c556c52f1196cea4536d36b683372de532943a9 diff --git a/stdin.c b/stdin.c index 649d464b..afbe35f8 100644 --- a/stdin.c +++ b/stdin.c @@ -41,7 +41,7 @@ static void stdin_pre_select(struct sched *s, struct task *t) static void stdin_default_event_handler(struct task *t) { - PARA_NOTICE_LOG("%p: %s\n", t, PARA_STRERROR(-t->ret)); + PARA_NOTICE_LOG("%p: %s\n", t, para_strerror(-t->ret)); unregister_task(t); } @@ -75,7 +75,7 @@ static void stdin_post_select(struct sched *s, struct task *t) } else t->ret = -E_STDIN_EOF; if (t->ret < 0) - sit->eof = 1; + sit->error = t->ret; } /** @@ -90,13 +90,19 @@ static void stdin_post_select(struct sched *s, struct task *t) */ void stdin_set_defaults(struct stdin_task *sit) { + int ret; + sit->bufsize = 16 * 1024, sit->loaded = 0, - sit->eof = 0, + sit->error = 0, sit->task.pre_select = stdin_pre_select; sit->task.post_select = stdin_post_select; sit->task.event_handler = stdin_default_event_handler; sit->task.private_data = sit; - mark_fd_nonblocking(STDIN_FILENO); sprintf(sit->task.status, "stdin reader"); + ret = mark_fd_nonblocking(STDIN_FILENO); + if (ret >= 0) + return; + PARA_EMERG_LOG("%s\n", para_strerror(-ret)); + exit(EXIT_FAILURE); }