- * sbuf.reader = io_new_conn(STDIN_FILENO, read_stdin, reader_exit, &sbuf);
- * sbuf.writer = io_new_conn(tochild[1], start_writer, fail_child_write,
- * &sbuf);
- * if (!sbuf.reader || !sbuf.writer
- * || !io_new_conn(fromchild[0], read_from_child, NULL, &out))
+ * sbuf.len = sizeof(sbuf.inbuf);
+ * sbuf.reader = io_new_conn(STDIN_FILENO,
+ * io_read_partial(sbuf.inbuf, &sbuf.len,
+ * wake_writer, &sbuf));
+ * sbuf.writer = io_new_conn(tochild[1], io_idle());
+ *
+ * out.max = 128;
+ * out.off = 0;
+ * out.rlen = 128;
+ * out.buf = malloc(out.max);
+ * from_child = io_new_conn(fromchild[0],
+ * io_read_partial(out.buf, &out.rlen,
+ * read_from_child, &out));
+ * if (!sbuf.reader || !sbuf.writer || !from_child)