[futex] Use WaitQueue in futex node
Change-Id: Iaaf4192631fdf97d80786995a85f758c522baf2a
diff --git a/kernel/object/futex_node.cpp b/kernel/object/futex_node.cpp
index 1451608..87b106b 100644
--- a/kernel/object/futex_node.cpp
+++ b/kernel/object/futex_node.cpp
@@ -18,16 +18,12 @@
FutexNode::FutexNode() {
LTRACE_ENTRY;
-
- wait_queue_ = WAIT_QUEUE_INITIAL_VALUE(wait_queue_);
}
FutexNode::~FutexNode() {
LTRACE_ENTRY;
DEBUG_ASSERT(!IsInQueue());
-
- wait_queue_destroy(&wait_queue_);
}
bool FutexNode::IsInQueue() const {
@@ -161,7 +157,7 @@
thread_t* current_thread = get_current_thread();
zx_status_t result;
current_thread->interruptable = true;
- result = wait_queue_block(&wait_queue_, deadline);
+ result = wait_queue_.Block(deadline);
current_thread->interruptable = false;
return result;
@@ -184,7 +180,7 @@
MarkAsNotInQueue();
AutoThreadLock lock;
- wait_queue_wake_one(&wait_queue_, /* reschedule */ true, ZX_OK);
+ wait_queue_.WakeOne(/* reschedule */ true, ZX_OK);
}
// Set |node1| and |node2|'s list pointers so that |node1| is immediately
diff --git a/kernel/object/include/object/futex_node.h b/kernel/object/include/object/futex_node.h
index ef918d3..2cd35f2 100644
--- a/kernel/object/include/object/futex_node.h
+++ b/kernel/object/include/object/futex_node.h
@@ -69,7 +69,7 @@
uintptr_t hash_key_;
// Used for waking the thread corresponding to the FutexNode.
- wait_queue_t wait_queue_;
+ WaitQueue wait_queue_;
// queue_prev_ and queue_next_ are used for maintaining a circular
// doubly-linked list of threads that are waiting on one futex address.