[MPlayer-cvslog] r37387 - trunk/mplayer.c

reimar subversion at mplayerhq.hu
Sat Apr 18 10:54:41 CEST 2015


Author: reimar
Date: Wed Apr 15 23:44:02 2015
New Revision: 37387

Log:
Reinstall SIGCHLD handler after handling the signal.

This seems necessary at least on Linux, otherwise
we handle only the first child process.

Modified:
   trunk/mplayer.c

Modified: trunk/mplayer.c
==============================================================================
--- trunk/mplayer.c	Wed Apr  1 00:15:36 2015	(r37386)
+++ trunk/mplayer.c	Wed Apr 15 23:44:02 2015	(r37387)
@@ -785,6 +785,9 @@ static void child_sighandler(int x)
     do {
         pid = waitpid(-1, NULL, WNOHANG);
     } while (pid > 0);
+    // Without this, we will be called only once at
+    // least on Linux 3.16.
+    signal(SIGCHLD, child_sighandler);
 }
 
 #endif
@@ -3024,6 +3027,8 @@ int main(int argc, char *argv[])
 
     // Catch signals
 #ifndef __MINGW32__
+    // TODO: use newer POSIX SIG_IGN behaviour instead to
+    // automatically handle children?
     signal(SIGCHLD, child_sighandler);
 #endif
 


More information about the MPlayer-cvslog mailing list