diff --git a/src/fd.c b/src/fd.c index fd2e13494..cbfe73a2d 100644 --- a/src/fd.c +++ b/src/fd.c @@ -762,9 +762,10 @@ static int init_pollers_per_thread() poller_rd_pipe = mypipe[0]; poller_wr_pipe[tid] = mypipe[1]; fcntl(poller_rd_pipe, F_SETFL, O_NONBLOCK); - fd_insert(poller_rd_pipe, poller_pipe_io_handler, poller_pipe_io_handler, - tid_bit); + fd_insert(poller_rd_pipe, poller_pipe_io_handler, poller_pipe_io_handler, tid_bit); + fd_insert(poller_wr_pipe[tid], poller_pipe_io_handler, poller_pipe_io_handler, tid_bit); fd_want_recv(poller_rd_pipe); + fd_stop_both(poller_wr_pipe[tid]); return 1; }