X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=stdin.c;h=6b9c80988b365c76fe77e8a470004e2398739d5f;hp=cecdcb77521964b7303423f564d04117233a3d1b;hb=3c5c2ebfc2d651f2f77d0df89cbb58a2068bcad0;hpb=2290d9be0703d3f83f38c2f100b1b41ec0790bb3 diff --git a/stdin.c b/stdin.c index cecdcb77..6b9c8098 100644 --- a/stdin.c +++ b/stdin.c @@ -27,22 +27,14 @@ void stdin_post_select(struct sched *s, struct task *t) ret = read(STDIN_FILENO, sit->buf + sit->loaded, sit->bufsize - sit->loaded); if (ret < 0) t->ret = -E_STDIN_READ; - else { + else if (ret > 0) { sit->loaded += ret; t->ret = ret; - } + } else + t->ret = 0; + if (ret <= 0) + sit->eof = 1; sprintf(t->status, "%p stdin reader: loaded = %d, ret = %d", sit, sit->loaded, t->ret); } - -#if 0 -void stdin_init(struct stdin_task *sit) -{ - sit->task.private_data = sit; - sit->task.pre_select = stdin_pre_select; - sit->task.post_select = stdin_post_select; - sit->task.flags = POST_EOF_IS_ERROR; - sprintf(sit->task.status, "%p stdin reader: initialized", &sit->task); -} -#endif