base: catch ipc error in signal proxy

actually do what the comments says ...

Issue #2584
This commit is contained in:
Alexander Boettcher 2017-11-29 22:53:23 +01:00 committed by Christian Helmuth
parent a38ec2854a
commit bf74c1694d

View File

@ -121,9 +121,11 @@ void Entrypoint::_process_incoming_signals()
* destroyed. In that case we will get an ipc error exception * destroyed. In that case we will get an ipc error exception
* as result, which has to be caught. * as result, which has to be caught.
*/ */
retry<Blocking_canceled>( try {
[&] () { _signal_proxy_cap.call<Signal_proxy::Rpc_signal>(); }, retry<Blocking_canceled>(
[] () { warning("blocking canceled during signal processing"); }); [&] () { _signal_proxy_cap.call<Signal_proxy::Rpc_signal>(); },
[] () { warning("blocking canceled during signal processing"); });
} catch (Genode::Ipc_error) { /* ignore - context got destroyed in meantime */ }
cmpxchg(&_signal_recipient, SIGNAL_PROXY, NONE); cmpxchg(&_signal_recipient, SIGNAL_PROXY, NONE);
} else { } else {