mirror of
https://github.com/genodelabs/genode.git
synced 2025-05-08 11:38:10 +00:00
base: activate Rpc_entrypoint explicitly in dtor
The Rpc_exit call is delivered via RPC which results in a deadlock if the Rpc_entrypoint has not been started yet. To prevent this situation we active the Rpc_entrypoint explicitly before we call Rpc_exit. Fixes #811.
This commit is contained in:
parent
a341f744ce
commit
505f4290ec
@ -120,6 +120,12 @@ Rpc_entrypoint::~Rpc_entrypoint()
|
|||||||
{
|
{
|
||||||
typedef Object_pool<Rpc_object_base> Pool;
|
typedef Object_pool<Rpc_object_base> Pool;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We have to make sure the server loop is running which is only the case
|
||||||
|
* if the Rpc_entrypoint was actived before we execute the RPC call.
|
||||||
|
*/
|
||||||
|
_delay_start.unlock();
|
||||||
|
|
||||||
/* leave server loop */
|
/* leave server loop */
|
||||||
_exit_cap.call<Exit::Rpc_exit>();
|
_exit_cap.call<Exit::Rpc_exit>();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user