From f572e331ee2b800c6db598b8ac4b265e628796b8 Mon Sep 17 00:00:00 2001 From: martin Date: Mon, 30 May 2016 20:41:26 +0100 Subject: [PATCH] Unblock SIGCHLD for launched processes --- session-manager/src/nsmd.C | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/session-manager/src/nsmd.C b/session-manager/src/nsmd.C index 026346f..e047098 100644 --- a/session-manager/src/nsmd.C +++ b/session-manager/src/nsmd.C @@ -626,6 +626,13 @@ launch ( const char *executable, const char *client_id ) char *args[] = { strdup( executable ), NULL }; setenv( "NSM_URL", url, 1 ); + + /* Ensure the launched process can receive SIGCHLD */ + /* Unblocking SIGCHLD here does NOT unblock it for nsmd itself */ + sigset_t mask; + sigemptyset( &mask ); + sigaddset( &mask, SIGCHLD ); + sigprocmask(SIG_UNBLOCK, &mask, NULL ); if ( -1 == execvp( executable, args ) ) {