diff --git a/repos/base/src/lib/base/entrypoint.cc b/repos/base/src/lib/base/entrypoint.cc index 668983b029..acaf3ea3dc 100644 --- a/repos/base/src/lib/base/entrypoint.cc +++ b/repos/base/src/lib/base/entrypoint.cc @@ -121,9 +121,11 @@ void Entrypoint::_process_incoming_signals() * destroyed. In that case we will get an ipc error exception * as result, which has to be caught. */ - retry( - [&] () { _signal_proxy_cap.call(); }, - [] () { warning("blocking canceled during signal processing"); }); + try { + retry( + [&] () { _signal_proxy_cap.call(); }, + [] () { warning("blocking canceled during signal processing"); }); + } catch (Genode::Ipc_error) { /* ignore - context got destroyed in meantime */ } cmpxchg(&_signal_recipient, SIGNAL_PROXY, NONE); } else {