From 7acc34b48b7df4fe3d6efeef78f521e0ea7599e5 Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Mon, 6 Jul 2020 14:30:14 +0200 Subject: [PATCH] dde_zircon: use Mutex Fixes #3805 --- repos/dde_zircon/src/lib/zircon/include/zx/irq.h | 14 ++++++-------- repos/dde_zircon/src/lib/zircon/mutex.cc | 8 ++++---- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/repos/dde_zircon/src/lib/zircon/include/zx/irq.h b/repos/dde_zircon/src/lib/zircon/include/zx/irq.h index 14c9e773dc..99566c6629 100644 --- a/repos/dde_zircon/src/lib/zircon/include/zx/irq.h +++ b/repos/dde_zircon/src/lib/zircon/include/zx/irq.h @@ -17,7 +17,7 @@ #include #include #include -#include +#include namespace ZX{ enum { @@ -31,26 +31,24 @@ namespace ZX{ private: tsession _irq; Genode::Signal_handler _irq_handler; - Genode::Lock _lock; + Genode::Mutex _mutex { }; void _unlock() { - _lock.unlock(); + _mutex.release(); } public: Irq(Genode::Env &env, int irq) : _irq(env, irq), - _irq_handler(env.ep(), *this, &Irq::_unlock), - _lock() + _irq_handler(env.ep(), *this, &Irq::_unlock) { _irq.sigh(_irq_handler); } Irq(Genode::Env &env, Genode::Irq_session_capability cap) : _irq(cap), - _irq_handler(env.ep(), *this, &Irq::_unlock), - _lock() + _irq_handler(env.ep(), *this, &Irq::_unlock) { _irq.sigh(_irq_handler); } @@ -58,7 +56,7 @@ namespace ZX{ void wait() { _irq.ack_irq(); - _lock.lock(); + _mutex.acquire(); } }; } diff --git a/repos/dde_zircon/src/lib/zircon/mutex.cc b/repos/dde_zircon/src/lib/zircon/mutex.cc index b0363f91cf..9ea0918a7f 100644 --- a/repos/dde_zircon/src/lib/zircon/mutex.cc +++ b/repos/dde_zircon/src/lib/zircon/mutex.cc @@ -13,7 +13,7 @@ #include #include -#include +#include #include @@ -27,19 +27,19 @@ extern "C" { return thrd_error; } Genode::Allocator &alloc = ZX::Resource::get_component(); - mtx->lock = static_cast(new (alloc) Genode::Lock()); + mtx->lock = static_cast(new (alloc) Genode::Mutex()); return thrd_success; } int mtx_lock(mtx_t *mtx) { - static_cast(mtx->lock)->lock(); + static_cast(mtx->lock)->acquire(); return thrd_success; } int mtx_unlock(mtx_t *mtx) { - static_cast(mtx->lock)->unlock(); + static_cast(mtx->lock)->release(); return thrd_success; }