fr_event_loop_exit(event_list, 2);
}
+ close(self_pipe[1]);
+ self_pipe[1] = -1;
return;
} /* else exit/term flags weren't set */
if ((fr_cloexec(self_pipe[0]) < 0) || (fr_cloexec(self_pipe[1]) < 0) ||
(fr_nonblock(self_pipe[0]) < 0) || (fr_nonblock(self_pipe[1]) < 0)) {
ERROR("Error setting self-signal pipe flags: %s", fr_syserror(errno));
+ close_pipe:
+ close(self_pipe[0]);
+ close(self_pipe[1]);
+ self_pipe[0] = self_pipe[1] = -1;
return -1;
}
DEBUG4("Created self-signal pipe. Read end FD %i, write end FD %i", self_pipe[0], self_pipe[1]);
NULL,
event_list) < 0) {
PERROR("Failed creating self-signal pipe handler");
- return -1;
+ goto close_pipe;
}
return 0;