@@ -123,12 +123,11 @@ static int StartDebugSignalHandler() {
123
123
CHECK_EQ (0 , pthread_sigmask (SIG_SETMASK, &sigmask, &savemask));
124
124
sigmask = savemask;
125
125
pthread_t thread;
126
- const int err = pthread_create (&thread, &attr,
127
- StartIoThreadMain, nullptr );
128
- // Restore original mask
129
- CHECK_EQ (0 , pthread_sigmask (SIG_SETMASK, &sigmask, nullptr ));
126
+ const int err = pthread_create (&thread, &attr, StartIoThreadMain, nullptr );
130
127
CHECK_EQ (0 , pthread_attr_destroy (&attr));
131
128
if (err != 0 ) {
129
+ // Restore original mask
130
+ CHECK_EQ (0 , pthread_sigmask (SIG_SETMASK, &sigmask, nullptr ));
132
131
fprintf (stderr, " node[%u]: pthread_create: %s\n " ,
133
132
uv_os_getpid (), strerror (err));
134
133
fflush (stderr);
@@ -137,6 +136,8 @@ static int StartDebugSignalHandler() {
137
136
return -err;
138
137
}
139
138
RegisterSignalHandler (SIGUSR1, StartIoThreadWakeup);
139
+ // Restore original mask
140
+ CHECK_EQ (0 , pthread_sigmask (SIG_SETMASK, &sigmask, nullptr ));
140
141
// Unblock SIGUSR1. A pending SIGUSR1 signal will now be delivered.
141
142
sigemptyset (&sigmask);
142
143
sigaddset (&sigmask, SIGUSR1);
0 commit comments