X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=audioc.c;h=5f91e3b7d925bf4bd34f67ef0cfeb059a60cef8f;hp=af67063367044b675877173a1ed351bdd28f2dd1;hb=HEAD;hpb=e2ad488f4d30b6d9617702b8ce868ed7c55a4247 diff --git a/audioc.c b/audioc.c index af670633..f2e4cb91 100644 --- a/audioc.c +++ b/audioc.c @@ -107,6 +107,12 @@ static void help_completer(struct i9e_completion_info *ci, cr->matches = i9e_complete_commands(ci->word, audiod_completers); } +static void ll_completer(struct i9e_completion_info *ci, + struct i9e_completion_result *cr) +{ + i9e_ll_completer(ci, cr); +} + static void version_completer(struct i9e_completion_info *ci, struct i9e_completion_result *cr) { @@ -143,17 +149,17 @@ static struct i9e_completer audiod_completers[] = { {.name = NULL} }; -static void audioc_pre_select(struct sched *s, void *context) +static void audioc_pre_monitor(struct sched *s, void *context) { struct audioc_task *at = context; int ret = btr_node_status(at->btrn, 0, BTR_NT_ROOT); if (ret < 0) sched_min_delay(s); - para_fd_set(at->fd, &s->rfds, &s->max_fileno); + sched_monitor_readfd(at->fd, s); } -static int audioc_post_select(struct sched *s, void *context) +static int audioc_post_monitor(struct sched *s, void *context) { char *buf = NULL; struct audioc_task *at = context; @@ -162,14 +168,14 @@ static int audioc_post_select(struct sched *s, void *context) if (ret < 0) goto out; - if (!FD_ISSET(at->fd, &s->rfds)) + if (!sched_read_ok(at->fd, s)) return 0; bufsize = PARA_MAX(1024U, OPT_UINT32_VAL(BUFSIZE)); - buf = para_malloc(bufsize); + buf = alloc(bufsize); ret = recv_bin_buffer(at->fd, buf, bufsize); PARA_DEBUG_LOG("recv: %d\n", ret); if (ret == 0) - ret = -E_AUDIOC_EOF; + ret = -E_EOF; if (ret < 0) goto out; btr_add_output(buf, ret, at->btrn); @@ -211,8 +217,8 @@ static int audioc_i9e_line_handler(char *line) EMBRACE(.name = "audioc line handler")); at->task = task_register(&(struct task_info) { .name = "audioc", - .pre_select = audioc_pre_select, - .post_select = audioc_post_select, + .pre_monitor = audioc_pre_monitor, + .post_monitor = audioc_post_monitor, .context = at, }, &sched); i9e_attach_to_stdout(at->btrn); @@ -250,9 +256,9 @@ __noreturn static void interactive_session(void) sigemptyset(&act.sa_mask); act.sa_flags = 0; sigaction(SIGINT, &act, NULL); - sched.select_function = i9e_select; + sched.poll_function = i9e_poll; - sched.default_timeout.tv_sec = 1; + sched.default_timeout = 1000; ret = i9e_open(&ici, &sched); if (ret < 0) goto out; @@ -364,7 +370,7 @@ int main(int argc, char *argv[]) if (ret < 0) goto out; bufsize = PARA_MAX(1024U, OPT_UINT32_VAL(BUFSIZE)); - buf = para_malloc(bufsize); + buf = alloc(bufsize); do { size_t n = ret = recv_bin_buffer(fd, buf, bufsize); if (ret <= 0)