X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=stdin.c;h=d025b949e8e8d2566abde3f2f214db7998ba44ff;hb=4ce5b6570ed83ef2ab5296f369f147593507286b;hp=eea78b3eb8cabee7c39900c248a2e9f116426872;hpb=4ddaef74ff8f605a31c499d77fcaaffa7a3708c0;p=paraslash.git diff --git a/stdin.c b/stdin.c index eea78b3e..d025b949 100644 --- a/stdin.c +++ b/stdin.c @@ -14,10 +14,10 @@ #include "string.h" /* - * If there is space left in the buffer of the stdin task add STDIN_FILENO to - * the read fd set of s. + * If there is space left in the buffer of the stdin task, ask the scheduler to + * monitor STDIN_FILENO. */ -static void stdin_pre_select(struct sched *s, void *context) +static void stdin_pre_monitor(struct sched *s, void *context) { struct stdin_task *sit = context; int ret; @@ -28,16 +28,15 @@ static void stdin_pre_select(struct sched *s, void *context) if (ret <= 0) return; if (btr_pool_unused(sit->btrp) > 0) - return para_fd_set(STDIN_FILENO, &s->rfds, &s->max_fileno); + return sched_monitor_readfd(STDIN_FILENO, s); sched_request_timeout_ms(100, s); } /* - * This function checks if STDIN_FILENO was included by in the read fd set of s - * during the previous pre_select call. If so, and if STDIN_FILENO is readable, - * data is read from stdin and fed into the buffer tree. + * Feed data from stdin into the buffer tree if STDIN_FILENO is ready for + * reading. */ -static int stdin_post_select(__a_unused struct sched *s, void *context) +static int stdin_post_monitor(__a_unused struct sched *s, void *context) { struct stdin_task *sit = context; ssize_t ret; @@ -91,8 +90,8 @@ void stdin_task_register(struct stdin_task *sit, struct sched *s) int ret; struct task_info ti = { .name = "stdin", - .pre_select = stdin_pre_select, - .post_select = stdin_post_select, + .pre_monitor = stdin_pre_monitor, + .post_monitor = stdin_post_monitor, .context = sit, };