diff --git a/src/unix/signal.c b/src/unix/signal.c index 22c7783b..aa84ff2f 100644 --- a/src/unix/signal.c +++ b/src/unix/signal.c @@ -141,7 +141,10 @@ static void uv__signal_handler(int signum) { saved_errno = errno; memset(&msg, 0, sizeof msg); - uv__signal_lock(); + if (uv__signal_lock()) { + errno = saved_errno; + return; + } for (handle = uv__signal_first_handle(signum); handle != NULL && handle->signum == signum;