X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fcore%2Fexecute.c;fp=src%2Fcore%2Fexecute.c;h=02df51b5bb29f6b0b0b05f83c22c6a5c6813a8f0;hp=39ec5adbbe44f2783691945a7816c0dd0f393424;hb=cd972d6911b0e1403e0a11408be732fc3a513f2b;hpb=3164e3cbc50b8754c51f1fdeda7a7d6cedcc39b6 diff --git a/src/core/execute.c b/src/core/execute.c index 39ec5adbb..02df51b5b 100644 --- a/src/core/execute.c +++ b/src/core/execute.c @@ -1159,10 +1159,10 @@ static void do_idle_pipe_dance(int idle_pipe[4]) { if (idle_pipe[3] >= 0 && r == 0 /* timeout */) { /* Signal systemd that we are bored and want to continue. */ - write(idle_pipe[3], "x", 1); - - /* Wait for systemd to react to the signal above. */ - fd_wait_for_event(idle_pipe[0], POLLHUP, IDLE_TIMEOUT2_USEC); + r = write(idle_pipe[3], "x", 1); + if (r > 0) + /* Wait for systemd to react to the signal above. */ + fd_wait_for_event(idle_pipe[0], POLLHUP, IDLE_TIMEOUT2_USEC); } safe_close(idle_pipe[0]);