changeset 9508:9c99f15829fa HEAD

lib-signals: Set signal pipe fds non-blocking to make sure read/write doesn't hang.
author Timo Sirainen <tss@iki.fi>
date Tue, 15 Dec 2009 17:28:16 -0500
parents 9af9343084d4
children 845e6da5194a
files src/lib/lib-signals.c
diffstat 1 files changed, 3 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/lib-signals.c	Tue Dec 15 14:05:06 2009 -0500
+++ b/src/lib/lib-signals.c	Tue Dec 15 17:28:16 2009 -0500
@@ -3,6 +3,7 @@
 #include "lib.h"
 #include "ioloop.h"
 #include "fd-close-on-exec.h"
+#include "fd-set-nonblock.h"
 #include "lib-signals.h"
 
 #include <signal.h>
@@ -197,6 +198,8 @@
 		/* first delayed handler */
 		if (pipe(sig_pipe_fd) < 0)
 			i_fatal("pipe() failed: %m");
+		fd_set_nonblock(sig_pipe_fd[0], TRUE);
+		fd_set_nonblock(sig_pipe_fd[1], TRUE);
 		fd_close_on_exec(sig_pipe_fd[0], TRUE);
 		fd_close_on_exec(sig_pipe_fd[1], TRUE);
 		if (signals_initialized) {