From 9cd38a6846dad70e1320177cd3f4a2728477cf1a Mon Sep 17 00:00:00 2001 From: Christian Prochaska Date: Tue, 13 Oct 2020 13:31:31 +0200 Subject: [PATCH] libc: rwlock cleanup Issue #3912 --- repos/libports/src/lib/libc/rwlock.cc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/repos/libports/src/lib/libc/rwlock.cc b/repos/libports/src/lib/libc/rwlock.cc index d11b2a9c15..e29626b682 100644 --- a/repos/libports/src/lib/libc/rwlock.cc +++ b/repos/libports/src/lib/libc/rwlock.cc @@ -76,18 +76,16 @@ extern "C" { if (_owner == nullptr) { Mutex::Guard guard(_nbr_mutex); _nbr--; - if (_nbr == 0) { - _owner = nullptr; + if (_nbr == 0) _global_sem.up(); - } return 0; - }; + } if (_owner != Thread::myself()) { error("Unlocking writer lock owned by other thread"); errno = EPERM; return -1; - }; + } /* Write lock owned by us */ _owner = nullptr;