From 68582705176d0ecec7c806ecd127c0efcc4e5539 Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Fri, 6 Dec 2019 14:16:55 +0100 Subject: [PATCH] base: disarm atexit handling for signal thread The signal thread is not supposed to be destructed in any scenario other than the noux fork mechanism (where no signals occur). Issue #3578 --- repos/base/src/lib/base/signal.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/repos/base/src/lib/base/signal.cc b/repos/base/src/lib/base/signal.cc index 57a694f56b..fedf061633 100644 --- a/repos/base/src/lib/base/signal.cc +++ b/repos/base/src/lib/base/signal.cc @@ -23,6 +23,7 @@ /* base-internal includes */ #include +#include #include using namespace Genode; @@ -69,6 +70,7 @@ class Signal_handler_thread : Thread, Lock ~Signal_handler_thread() { + log("~Signal_handler_thread"); env_deprecated()->pd_session()->free_signal_source(_signal_source->rpc_cap()); } }; @@ -81,8 +83,7 @@ class Signal_handler_thread : Thread, Lock */ static Constructible & signal_handler_thread() { - static Constructible inst; - return inst; + return *unmanaged_singleton >(); }