X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=stdout.c;h=1c60669aa4579846d05958ea8f619ddf9d978c83;hp=83703055c83c54edc9a7e17b050f3ca2d076c61e;hb=41f13bf6cac519b46ed24892e2c84384ef5dc500;hpb=39ef1da5509461b18beb5b8f16ff6118c20c0ac6 diff --git a/stdout.c b/stdout.c index 83703055..1c60669a 100644 --- a/stdout.c +++ b/stdout.c @@ -25,7 +25,7 @@ void stdout_post_select(struct sched *s, struct task *t) t->ret = 1; if (!sot->check_fd) { - if (*sot->eof) + if (*sot->input_eof) t->ret = -E_STDOUT_EOF; return; } @@ -38,3 +38,21 @@ void stdout_post_select(struct sched *s, struct task *t) *sot->loaded -= ret; t->ret = 1; } + +void stdout_default_event_handler(struct task *t) +{ + PARA_NOTICE_LOG("%p: %s\n", t, PARA_STRERROR(-t->ret)); + unregister_task(t); +} + + +void stdout_set_defaults(struct stdout_task *sot) +{ + sot->task.private_data = sot; + sot->task.pre_select = stdout_pre_select; + sot->task.post_select = stdout_post_select; + sot->task.event_handler = stdout_default_event_handler; + sot->task.flags = 0; + sot->eof = 0; + sprintf(sot->task.status, "stdout writer"); +}