From 73bfdb8bb8e99b7debc33de525608f2c658dd4eb Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Thu, 12 Sep 2013 01:12:19 +0200 Subject: [PATCH] noux: fix deadlock during destruction Issue #485 --- ports/src/noux/local_rm_service.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ports/src/noux/local_rm_service.h b/ports/src/noux/local_rm_service.h index a90ad6727..884fdd9bb 100644 --- a/ports/src/noux/local_rm_service.h +++ b/ports/src/noux/local_rm_service.h @@ -120,8 +120,8 @@ namespace Noux { void close(Genode::Session_capability session) { - Object_pool::Guard - rm_session(_ep.lookup_and_lock(session)); + Rm_session_component * rm_session = + dynamic_cast(_ep.lookup_and_lock(session)); if (!rm_session) { PWRN("Unexpected call of close with non-RM-session argument"); return; @@ -141,7 +141,9 @@ namespace Noux { info->dissolve_users(); + /* 'rm_session' is deleted by deleting Rm_dataspace_info 'info' */ destroy(env()->heap(), info); + } }; }