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
This commit is contained in:
Norman Feske 2019-12-06 14:16:55 +01:00 committed by Christian Helmuth
parent 4e57b6eceb
commit 6858270517
1 changed files with 3 additions and 2 deletions

View File

@ -23,6 +23,7 @@
/* base-internal includes */
#include <base/internal/globals.h>
#include <base/internal/unmanaged_singleton.h>
#include <signal_source/client.h>
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> & signal_handler_thread()
{
static Constructible<Signal_handler_thread> inst;
return inst;
return *unmanaged_singleton<Constructible<Signal_handler_thread> >();
}