Leave our wakeup signal blocked after destroying the ShmEventLoop
This will avoid late-arriving wakeup signals killing the process
(instead of letting it shut down normally).
Change-Id: Ie87c3535c6cb884df270f268fe8b02ea9118a245
Signed-off-by: James Kuszmaul <james.kuszmaul@bluerivertech.com>
diff --git a/aos/ipc_lib/signalfd.cc b/aos/ipc_lib/signalfd.cc
index 384baaa..c9634a5 100644
--- a/aos/ipc_lib/signalfd.cc
+++ b/aos/ipc_lib/signalfd.cc
@@ -76,7 +76,7 @@
CHECK_EQ(0, wrapped_pthread_sigmask(SIG_BLOCK, &blocked_mask_, &old_mask));
for (int signal : signals) {
if (sigismember(&old_mask, signal)) {
- CHECK_EQ(0, sigdelset(&blocked_mask_, signal));
+ LeaveSignalBlocked(signal);
}
}
}
@@ -119,4 +119,8 @@
return result;
}
+void SignalFd::LeaveSignalBlocked(unsigned int signal) {
+ CHECK_EQ(0, sigdelset(&blocked_mask_, signal));
+}
+
} // namespace aos::ipc_lib