3
3
#![ cfg( feature = "full" ) ]
4
4
5
5
use futures:: StreamExt ;
6
- use tokio:: time:: { self , sleep, sleep_until , Duration , Instant } ;
6
+ use tokio:: time:: { self , sleep, Duration , Instant } ;
7
7
use tokio_test:: { assert_pending, assert_ready, task} ;
8
8
use tokio_util:: time:: DelayQueue ;
9
9
@@ -82,8 +82,6 @@ async fn single_short_delay() {
82
82
83
83
sleep ( ms ( 5 ) ) . await ;
84
84
85
- assert ! ( queue. is_woken( ) ) ;
86
-
87
85
let entry = assert_ready_some ! ( poll!( queue) ) ;
88
86
assert_eq ! ( * entry. get_ref( ) , "foo" ) ;
89
87
@@ -221,7 +219,7 @@ async fn reset_much_later() {
221
219
222
220
sleep ( ms ( 20 ) ) . await ;
223
221
224
- assert ! ( queue . is_woken ( ) ) ;
222
+ assert_ready_some ! ( poll! ( queue ) ) ;
225
223
}
226
224
227
225
// Reproduces tokio-rs/tokio#849.
@@ -248,7 +246,7 @@ async fn reset_twice() {
248
246
249
247
sleep ( ms ( 20 ) ) . await ;
250
248
251
- assert ! ( queue . is_woken ( ) ) ;
249
+ assert_ready_some ! ( poll! ( queue ) ) ;
252
250
}
253
251
254
252
/// Regression test: Given an entry inserted with a deadline in the past, so
@@ -412,8 +410,6 @@ async fn expire_first_key_when_reset_to_expire_earlier() {
412
410
413
411
sleep ( ms ( 100 ) ) . await ;
414
412
415
- assert ! ( queue. is_woken( ) ) ;
416
-
417
413
let entry = assert_ready_some ! ( poll!( queue) ) . into_inner ( ) ;
418
414
assert_eq ! ( entry, "one" ) ;
419
415
}
@@ -435,8 +431,6 @@ async fn expire_second_key_when_reset_to_expire_earlier() {
435
431
436
432
sleep ( ms ( 100 ) ) . await ;
437
433
438
- assert ! ( queue. is_woken( ) ) ;
439
-
440
434
let entry = assert_ready_some ! ( poll!( queue) ) . into_inner ( ) ;
441
435
assert_eq ! ( entry, "two" ) ;
442
436
}
@@ -457,8 +451,6 @@ async fn reset_first_expiring_item_to_expire_later() {
457
451
queue. reset_at ( & one, now + ms ( 300 ) ) ;
458
452
sleep ( ms ( 250 ) ) . await ;
459
453
460
- assert ! ( queue. is_woken( ) ) ;
461
-
462
454
let entry = assert_ready_some ! ( poll!( queue) ) . into_inner ( ) ;
463
455
assert_eq ! ( entry, "two" ) ;
464
456
}
@@ -522,43 +514,6 @@ async fn insert_after_ready_poll() {
522
514
assert_eq ! ( "3" , res[ 2 ] ) ;
523
515
}
524
516
525
- #[ tokio:: test]
526
- async fn reset_later_after_slot_starts ( ) {
527
- time:: pause ( ) ;
528
-
529
- let mut queue = task:: spawn ( DelayQueue :: new ( ) ) ;
530
-
531
- let now = Instant :: now ( ) ;
532
-
533
- let foo = queue. insert_at ( "foo" , now + ms ( 100 ) ) ;
534
-
535
- assert_pending ! ( poll!( queue) ) ;
536
-
537
- sleep_until ( now + Duration :: from_millis ( 80 ) ) . await ;
538
-
539
- assert ! ( !queue. is_woken( ) ) ;
540
-
541
- // At this point the queue hasn't been polled, so `elapsed` on the wheel
542
- // for the queue is still at 0 and hence the 1ms resolution slots cover
543
- // [0-64). Resetting the time on the entry to 120 causes it to get put in
544
- // the [64-128) slot. As the queue knows that the first entry is within
545
- // that slot, but doesn't know when, it must wake immediately to advance
546
- // the wheel.
547
- queue. reset_at ( & foo, now + ms ( 120 ) ) ;
548
- assert ! ( queue. is_woken( ) ) ;
549
-
550
- assert_pending ! ( poll!( queue) ) ;
551
-
552
- sleep_until ( now + Duration :: from_millis ( 119 ) ) . await ;
553
- assert ! ( !queue. is_woken( ) ) ;
554
-
555
- sleep ( ms ( 1 ) ) . await ;
556
- assert ! ( queue. is_woken( ) ) ;
557
-
558
- let entry = assert_ready_some ! ( poll!( queue) ) . into_inner ( ) ;
559
- assert_eq ! ( entry, "foo" ) ;
560
- }
561
-
562
517
#[ tokio:: test]
563
518
async fn reset_inserted_expired ( ) {
564
519
time:: pause ( ) ;
@@ -584,43 +539,6 @@ async fn reset_inserted_expired() {
584
539
assert_eq ! ( queue. len( ) , 0 ) ;
585
540
}
586
541
587
- #[ tokio:: test]
588
- async fn reset_earlier_after_slot_starts ( ) {
589
- time:: pause ( ) ;
590
-
591
- let mut queue = task:: spawn ( DelayQueue :: new ( ) ) ;
592
-
593
- let now = Instant :: now ( ) ;
594
-
595
- let foo = queue. insert_at ( "foo" , now + ms ( 200 ) ) ;
596
-
597
- assert_pending ! ( poll!( queue) ) ;
598
-
599
- sleep_until ( now + Duration :: from_millis ( 80 ) ) . await ;
600
-
601
- assert ! ( !queue. is_woken( ) ) ;
602
-
603
- // At this point the queue hasn't been polled, so `elapsed` on the wheel
604
- // for the queue is still at 0 and hence the 1ms resolution slots cover
605
- // [0-64). Resetting the time on the entry to 120 causes it to get put in
606
- // the [64-128) slot. As the queue knows that the first entry is within
607
- // that slot, but doesn't know when, it must wake immediately to advance
608
- // the wheel.
609
- queue. reset_at ( & foo, now + ms ( 120 ) ) ;
610
- assert ! ( queue. is_woken( ) ) ;
611
-
612
- assert_pending ! ( poll!( queue) ) ;
613
-
614
- sleep_until ( now + Duration :: from_millis ( 119 ) ) . await ;
615
- assert ! ( !queue. is_woken( ) ) ;
616
-
617
- sleep ( ms ( 1 ) ) . await ;
618
- assert ! ( queue. is_woken( ) ) ;
619
-
620
- let entry = assert_ready_some ! ( poll!( queue) ) . into_inner ( ) ;
621
- assert_eq ! ( entry, "foo" ) ;
622
- }
623
-
624
542
#[ tokio:: test]
625
543
async fn insert_in_past_after_poll_fires_immediately ( ) {
626
544
time:: pause ( ) ;
0 commit comments