From 622959ede47a9252ebeb0e86cf2d86236fe89627 Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Thu, 31 Jan 2013 10:08:30 +0100 Subject: [PATCH] core: always release Irq_proxy startup lock Prior this patch the startup lock was not released if the call of '_associate()' failed. In this condition, the caller of the constructor was infinitely blocked. --- base/src/core/include/irq_proxy.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/base/src/core/include/irq_proxy.h b/base/src/core/include/irq_proxy.h index 33792ea8e..f95ebc18d 100644 --- a/base/src/core/include/irq_proxy.h +++ b/base/src/core/include/irq_proxy.h @@ -154,10 +154,12 @@ class Genode::Irq_proxy : public THREAD, */ void entry() { - if (_associate()) { - _startup_lock.unlock(); + bool const associate_suceeded = _associate(); + + _startup_lock.unlock(); + + if (associate_suceeded) _loop(); - } } /**