SPAWN-SERVER: re-evaluate signals even 500ms (#18411)
re-evaluate signals even 500ms
Costa Tsaousis committed
Aug 26, 2024 at 12:02 UTC
4c59563921f767da4e477f31d77817c51823210c
1 file changed
+5
-4
src/libnetdata/spawn_server/spawn_server_nofork.c
+5
-4
@@ -759,6 +759,8 @@ static SPAWN_REQUEST *find_request_by_pid(pid_t pid) {
759
static void spawn_server_process_sigchld(void) {
760
// nd_log(NDLS_COLLECTORS, NDLP_INFO, "SPAWN SERVER: checking for exited children");
761
762
+ spawn_server_sigchld = false;
763
+
764
int status;
765
pid_t pid;
766
@@ -868,13 +870,12 @@ static void spawn_server_event_loop(SPAWN_SERVER *server) {
870
fds[1].events = POLLHUP | POLLERR;
871
872
while(!spawn_server_exit) {
871
- int ret = poll(fds, 2, -1);
872
- if (spawn_server_sigchld) {
873
- spawn_server_sigchld = false;
873
+ int ret = poll(fds, 2, 500);
874
+ if (spawn_server_sigchld || ret == 0) {
875
spawn_server_process_sigchld();
876
errno_clear();
877
877
- if(ret == -1)
878
+ if(ret == -1 || ret == 0)
879
continue;
880
}
881