Skip to content

Commit d5659a6

Browse files
committed
Kernel: Port WorkQueue to WaitQueue
1 parent a5901f2 commit d5659a6

File tree

2 files changed

+5
-6
lines changed

2 files changed

+5
-6
lines changed

Kernel/Tasks/WorkQueue.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
#include <Kernel/Arch/Processor.h>
99
#include <Kernel/Sections.h>
10-
#include <Kernel/Tasks/DeprecatedWaitQueue.h>
1110
#include <Kernel/Tasks/Process.h>
1211
#include <Kernel/Tasks/WorkQueue.h>
1312

@@ -39,7 +38,7 @@ UNMAP_AFTER_INIT WorkQueue::WorkQueue(StringView name)
3938
if (have_more)
4039
continue;
4140
}
42-
[[maybe_unused]] auto result = m_wait_queue.wait_on({});
41+
m_wait_queue.wait_until(m_items, [](auto& items) -> bool { return !items.is_empty(); });
4342
}
4443
Process::current().sys$exit(0);
4544
VERIFY_NOT_REACHED();
@@ -52,7 +51,7 @@ void WorkQueue::do_queue(WorkItem& item)
5251
m_items.with([&](auto& items) {
5352
items.append(item);
5453
});
55-
m_wait_queue.wake_one();
54+
m_wait_queue.notify_one();
5655
}
5756

5857
}

Kernel/Tasks/WorkQueue.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#include <AK/IntrusiveList.h>
1212
#include <Kernel/Forward.h>
1313
#include <Kernel/Locking/SpinlockProtected.h>
14-
#include <Kernel/Tasks/DeprecatedWaitQueue.h>
14+
#include <Kernel/Tasks/WaitQueue.h>
1515

1616
namespace Kernel {
1717

@@ -62,8 +62,8 @@ class WorkQueue {
6262
void do_queue(WorkItem&);
6363

6464
RefPtr<Thread> m_thread;
65-
DeprecatedWaitQueue m_wait_queue;
66-
RecursiveSpinlockProtected<IntrusiveList<&WorkItem::m_node>, LockRank::None> m_items {};
65+
WaitQueue m_wait_queue;
66+
SpinlockProtected<IntrusiveList<&WorkItem::m_node>, LockRank::None> m_items {};
6767
};
6868

6969
}

0 commit comments

Comments
 (0)