- if(!pipe(loop->pipefd)) {
- io_add(loop, &loop->signalio, signalio_handler, NULL, loop->pipefd[0], IO_READ);
- }
+ assert(pipe(loop->pipefd) == 0);
+ io_add(loop, &loop->signalio, signalio_handler, NULL, loop->pipefd[0], IO_READ);
+}
+
+static void pipe_exit(event_loop_t *loop) {
+ io_del(loop, &loop->signalio);
+
+ close(loop->pipefd[0]);
+ close(loop->pipefd[1]);
+
+ loop->pipefd[0] = -1;
+ loop->pipefd[1] = -1;