summaryrefslogtreecommitdiffstats
path: root/tokio/src/sync/semaphore.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tokio/src/sync/semaphore.rs')
-rw-r--r--tokio/src/sync/semaphore.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/tokio/src/sync/semaphore.rs b/tokio/src/sync/semaphore.rs
index e34e49cc..4cce7e8f 100644
--- a/tokio/src/sync/semaphore.rs
+++ b/tokio/src/sync/semaphore.rs
@@ -39,8 +39,15 @@ pub struct TryAcquireError(());
#[cfg(not(loom))]
fn bounds() {
fn check_unpin<T: Unpin>() {}
+ // This has to take a value, since the async fn's return type is unnameable.
+ fn check_send_sync_val<T: Send + Sync>(_t: T) {}
+ fn check_send_sync<T: Send + Sync>() {}
check_unpin::<Semaphore>();
check_unpin::<SemaphorePermit<'_>>();
+ check_send_sync::<Semaphore>();
+
+ let semaphore = Semaphore::new(0);
+ check_send_sync_val(semaphore.acquire());
}
impl Semaphore {