summaryrefslogtreecommitdiffstats
path: root/tokio/src/sync/batch_semaphore.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tokio/src/sync/batch_semaphore.rs')
-rw-r--r--tokio/src/sync/batch_semaphore.rs15
1 files changed, 8 insertions, 7 deletions
diff --git a/tokio/src/sync/batch_semaphore.rs b/tokio/src/sync/batch_semaphore.rs
index d89ac6ab..3656c109 100644
--- a/tokio/src/sync/batch_semaphore.rs
+++ b/tokio/src/sync/batch_semaphore.rs
@@ -14,8 +14,9 @@
//! tasks are acquiring smaller numbers of permits. This means that in a
//! use-case like tokio's read-write lock, writers will not be starved by
//! readers.
-use crate::loom::cell::CausalCell;
-use crate::loom::sync::{atomic::AtomicUsize, Mutex, MutexGuard};
+use crate::loom::cell::UnsafeCell;
+use crate::loom::sync::atomic::AtomicUsize;
+use crate::loom::sync::{Mutex, MutexGuard};
use crate::util::linked_list::{self, LinkedList};
use std::future::Future;
@@ -69,7 +70,7 @@ struct Waiter {
/// # Safety
///
/// This may only be accessed while the wait queue is locked.
- waker: CausalCell<Option<Waker>>,
+ waker: UnsafeCell<Option<Waker>>,
/// Intrusive linked-list pointers.
///
@@ -79,10 +80,10 @@ struct Waiter {
///
/// TODO: Ideally, we would be able to use loom to enforce that
/// this isn't accessed concurrently. However, it is difficult to
- /// use a `CausalCell` here, since the `Link` trait requires _returning_
- /// references to `Pointers`, and `CausalCell` requires that checked access
+ /// use a `UnsafeCell` here, since the `Link` trait requires _returning_
+ /// references to `Pointers`, and `UnsafeCell` requires that checked access
/// take place inside a closure. We should consider changing `Pointers` to
- /// use `CausalCell` internally.
+ /// use `UnsafeCell` internally.
pointers: linked_list::Pointers<Waiter>,
/// Should not be `Unpin`.
@@ -368,7 +369,7 @@ fn notify_all(mut list: LinkedList<Waiter>) {
impl Waiter {
fn new(num_permits: u16) -> Self {
Waiter {
- waker: CausalCell::new(None),
+ waker: UnsafeCell::new(None),
state: AtomicUsize::new(num_permits as usize),
pointers: linked_list::Pointers::new(),
_p: PhantomPinned,