|
@@ -10,17 +10,16 @@
|
|
|
|
|
|
namespace Kernel {
|
|
|
|
|
|
-bool WaitQueue::should_add_blocker(Thread::Blocker& b, void* data)
|
|
|
+bool WaitQueue::should_add_blocker(Thread::Blocker& b, void*)
|
|
|
{
|
|
|
- VERIFY(data != nullptr); // Thread that is requesting to be blocked
|
|
|
VERIFY(m_lock.is_locked());
|
|
|
VERIFY(b.blocker_type() == Thread::Blocker::Type::Queue);
|
|
|
if (m_wake_requested) {
|
|
|
m_wake_requested = false;
|
|
|
- dbgln_if(WAITQUEUE_DEBUG, "WaitQueue @ {}: do not block thread {}", this, data);
|
|
|
+ dbgln_if(WAITQUEUE_DEBUG, "WaitQueue @ {}: do not block thread {}", this, b.thread());
|
|
|
return false;
|
|
|
}
|
|
|
- dbgln_if(WAITQUEUE_DEBUG, "WaitQueue @ {}: should block thread {}", this, data);
|
|
|
+ dbgln_if(WAITQUEUE_DEBUG, "WaitQueue @ {}: should block thread {}", this, b.thread());
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -29,11 +28,10 @@ u32 WaitQueue::wake_one()
|
|
|
u32 did_wake = 0;
|
|
|
SpinlockLocker lock(m_lock);
|
|
|
dbgln_if(WAITQUEUE_DEBUG, "WaitQueue @ {}: wake_one", this);
|
|
|
- bool did_unblock_one = unblock_all_blockers_whose_conditions_are_met_locked([&](Thread::Blocker& b, void* data, bool& stop_iterating) {
|
|
|
- VERIFY(data);
|
|
|
+ bool did_unblock_one = unblock_all_blockers_whose_conditions_are_met_locked([&](Thread::Blocker& b, void*, bool& stop_iterating) {
|
|
|
VERIFY(b.blocker_type() == Thread::Blocker::Type::Queue);
|
|
|
auto& blocker = static_cast<Thread::WaitQueueBlocker&>(b);
|
|
|
- dbgln_if(WAITQUEUE_DEBUG, "WaitQueue @ {}: wake_one unblocking {}", this, data);
|
|
|
+ dbgln_if(WAITQUEUE_DEBUG, "WaitQueue @ {}: wake_one unblocking {}", this, blocker.thread());
|
|
|
if (blocker.unblock()) {
|
|
|
stop_iterating = true;
|
|
|
did_wake = 1;
|
|
@@ -54,11 +52,10 @@ u32 WaitQueue::wake_n(u32 wake_count)
|
|
|
dbgln_if(WAITQUEUE_DEBUG, "WaitQueue @ {}: wake_n({})", this, wake_count);
|
|
|
u32 did_wake = 0;
|
|
|
|
|
|
- bool did_unblock_some = unblock_all_blockers_whose_conditions_are_met_locked([&](Thread::Blocker& b, void* data, bool& stop_iterating) {
|
|
|
- VERIFY(data);
|
|
|
+ bool did_unblock_some = unblock_all_blockers_whose_conditions_are_met_locked([&](Thread::Blocker& b, void*, bool& stop_iterating) {
|
|
|
VERIFY(b.blocker_type() == Thread::Blocker::Type::Queue);
|
|
|
auto& blocker = static_cast<Thread::WaitQueueBlocker&>(b);
|
|
|
- dbgln_if(WAITQUEUE_DEBUG, "WaitQueue @ {}: wake_n unblocking {}", this, data);
|
|
|
+ dbgln_if(WAITQUEUE_DEBUG, "WaitQueue @ {}: wake_n unblocking {}", this, blocker.thread());
|
|
|
VERIFY(did_wake < wake_count);
|
|
|
if (blocker.unblock()) {
|
|
|
if (++did_wake >= wake_count)
|
|
@@ -79,12 +76,11 @@ u32 WaitQueue::wake_all()
|
|
|
dbgln_if(WAITQUEUE_DEBUG, "WaitQueue @ {}: wake_all", this);
|
|
|
u32 did_wake = 0;
|
|
|
|
|
|
- bool did_unblock_any = unblock_all_blockers_whose_conditions_are_met_locked([&](Thread::Blocker& b, void* data, bool&) {
|
|
|
- VERIFY(data);
|
|
|
+ bool did_unblock_any = unblock_all_blockers_whose_conditions_are_met_locked([&](Thread::Blocker& b, void*, bool&) {
|
|
|
VERIFY(b.blocker_type() == Thread::Blocker::Type::Queue);
|
|
|
auto& blocker = static_cast<Thread::WaitQueueBlocker&>(b);
|
|
|
|
|
|
- dbgln_if(WAITQUEUE_DEBUG, "WaitQueue @ {}: wake_all unblocking {}", this, data);
|
|
|
+ dbgln_if(WAITQUEUE_DEBUG, "WaitQueue @ {}: wake_all unblocking {}", this, blocker.thread());
|
|
|
|
|
|
if (blocker.unblock()) {
|
|
|
did_wake++;
|