From 62023dffe5396ee1a0380f12c7530bf4ff59fe4a Mon Sep 17 00:00:00 2001 From: Carl Lerche Date: Mon, 7 Dec 2020 11:24:15 -0800 Subject: sync: forward port 0.2 mpsc test (#3225) Forward ports the test included in #3215. The mpsc sempahore has been replaced in 0.3 and does not include the bug being fixed. --- tokio/tests/sync_mpsc.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'tokio') diff --git a/tokio/tests/sync_mpsc.rs b/tokio/tests/sync_mpsc.rs index adefcb12..ddbbf9ea 100644 --- a/tokio/tests/sync_mpsc.rs +++ b/tokio/tests/sync_mpsc.rs @@ -483,3 +483,22 @@ async fn ready_close_cancel_bounded() { let val = assert_ready!(recv.poll()); assert!(val.is_none()); } + +#[tokio::test] +async fn permit_available_not_acquired_close() { + let (tx1, mut rx) = mpsc::channel::<()>(1); + let tx2 = tx1.clone(); + + let permit1 = assert_ok!(tx1.reserve().await); + + let mut permit2 = task::spawn(tx2.reserve()); + assert_pending!(permit2.poll()); + + rx.close(); + + drop(permit1); + assert!(permit2.is_woken()); + + drop(permit2); + assert!(rx.recv().await.is_none()); +} -- cgit v1.2.3