summaryrefslogtreecommitdiff
path: root/src/mongo/db/initialize_server_global_state.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/initialize_server_global_state.cpp')
-rw-r--r--src/mongo/db/initialize_server_global_state.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/mongo/db/initialize_server_global_state.cpp b/src/mongo/db/initialize_server_global_state.cpp
index 5fa705d383b..1341f61f3ff 100644
--- a/src/mongo/db/initialize_server_global_state.cpp
+++ b/src/mongo/db/initialize_server_global_state.cpp
@@ -66,6 +66,7 @@
#include "mongo/util/net/listen.h"
#include "mongo/util/net/ssl_manager.h"
#include "mongo/util/processinfo.h"
+#include "mongo/util/signal_handlers_synchronous.h"
#include "mongo/util/quick_exit.h"
namespace fs = boost::filesystem;
@@ -108,11 +109,9 @@ static bool forkServer() {
serverGlobalParams.parentProc = ProcessId::getCurrent();
- // We need to make sure that all signals are unmasked so we can signal ourself
- // that we're fully initialized later on.
- sigset_t unblockSignalMask;
- verify(sigemptyset(&unblockSignalMask) == 0);
- verify(sigprocmask(SIG_SETMASK, &unblockSignalMask, NULL) == 0);
+ // clear signal mask so that SIGUSR2 will always be caught and we can clean up the original
+ // parent process
+ clearSignalMask();
// facilitate clean exit when child starts successfully
verify(signal(SIGUSR2, launchSignal) != SIG_ERR);