From bf74c1694db5bb8b87a43893a9c5c1ef7f47c91c Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Wed, 29 Nov 2017 22:53:23 +0100 Subject: [PATCH] base: catch ipc error in signal proxy actually do what the comments says ... Issue #2584 --- repos/base/src/lib/base/entrypoint.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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 {