From 387fe2d9a7679d3ccfdb68dfee789e73e477deb8 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Tue, 25 Jul 2023 17:12:10 -0400 Subject: [PATCH] userlandfs: Adjust following ConditionVariable changes. --- .../kernel/kernelland_emu/condition_variable.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/tests/add-ons/kernel/kernelland_emu/condition_variable.cpp b/src/tests/add-ons/kernel/kernelland_emu/condition_variable.cpp index 2d1cb7a303..6596eff5a4 100644 --- a/src/tests/add-ons/kernel/kernelland_emu/condition_variable.cpp +++ b/src/tests/add-ons/kernel/kernelland_emu/condition_variable.cpp @@ -208,7 +208,7 @@ ConditionVariable::Wait(uint32 flags, bigtime_t timeout) } -void +int32 ConditionVariable::_Notify(bool all, status_t result) { MutexLocker locker(sConditionVariablesLock); @@ -220,17 +220,20 @@ ConditionVariable::_Notify(bool all, status_t result) result = B_ERROR; } - _NotifyLocked(all, result); + return _NotifyLocked(all, result); } + return 0; } /*! Called with interrupts disabled and the condition variable spinlock and thread lock held. */ -void +int32 ConditionVariable::_NotifyLocked(bool all, status_t result) { + int32 notified = 0; + // dequeue and wake up the blocked threads while (ConditionVariableEntry* entry = fEntries.RemoveHead()) { entry->fVariable = NULL; @@ -243,9 +246,12 @@ ConditionVariable::_NotifyLocked(bool all, status_t result) entry->fWaitStatus = result; + notified++; if (!all) break; } + + return notified; }