Skip to content

Commit 5a5a8d1

Browse files
committed
f more test
1 parent 8dd78dd commit 5a5a8d1

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

lightning/src/util/wakers.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -744,5 +744,16 @@ mod tests {
744744
assert_eq!(future_state.lock().unwrap().std_future_callbacks.len(), 1);
745745
mem::drop(future_b);
746746
assert_eq!(future_state.lock().unwrap().std_future_callbacks.len(), 0);
747+
748+
// Further, after polling a future twice, if the notifier is woken all Wakers are dropped.
749+
let mut future_a = notifier.get_future();
750+
assert_eq!(Pin::new(&mut future_a).poll(&mut Context::from_waker(&create_waker().1)), Poll::Pending);
751+
assert_eq!(future_state.lock().unwrap().std_future_callbacks.len(), 1);
752+
assert_eq!(Pin::new(&mut future_a).poll(&mut Context::from_waker(&create_waker().1)), Poll::Pending);
753+
assert_eq!(future_state.lock().unwrap().std_future_callbacks.len(), 1);
754+
notifier.notify();
755+
assert_eq!(future_state.lock().unwrap().std_future_callbacks.len(), 0);
756+
assert_eq!(Pin::new(&mut future_a).poll(&mut Context::from_waker(&create_waker().1)), Poll::Ready(()));
757+
assert_eq!(future_state.lock().unwrap().std_future_callbacks.len(), 0);
747758
}
748759
}

0 commit comments

Comments
 (0)