summaryrefslogtreecommitdiffstats
path: root/tokio/src/runtime/task/stack.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tokio/src/runtime/task/stack.rs')
-rw-r--r--tokio/src/runtime/task/stack.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/tokio/src/runtime/task/stack.rs b/tokio/src/runtime/task/stack.rs
index b2d50baf..9dd8d3f4 100644
--- a/tokio/src/runtime/task/stack.rs
+++ b/tokio/src/runtime/task/stack.rs
@@ -31,8 +31,10 @@ impl<T: 'static> TransferStack<T> {
loop {
unsafe {
- *task.as_ref().stack_next.get() = NonNull::new(curr);
- }
+ task.as_ref()
+ .stack_next
+ .with_mut(|ptr| *ptr = NonNull::new(curr))
+ };
let res = self
.head
@@ -57,7 +59,7 @@ impl<T: 'static> TransferStack<T> {
let task = self.0?;
// Move the cursor forward
- self.0 = unsafe { *task.as_ref().stack_next.get() };
+ self.0 = unsafe { task.as_ref().stack_next.with(|ptr| *ptr) };
// Return the task
unsafe { Some(Task::from_raw(task)) }