@@ -104,8 +104,8 @@ impl Flag {
104
104
Arc :: new ( Self ( AtomicBool :: new ( false ) ) )
105
105
}
106
106
107
- fn get ( & self ) -> bool {
108
- self . 0 . load ( Ordering :: SeqCst )
107
+ fn take ( & self ) -> bool {
108
+ self . 0 . swap ( false , Ordering :: SeqCst )
109
109
}
110
110
111
111
fn set ( & self , v : bool ) {
@@ -165,12 +165,11 @@ fn mpsc_blocking_start_send() {
165
165
let mut task = StartSendFut :: new ( tx, 1 ) ;
166
166
167
167
assert ! ( task. poll_unpin( cx) . is_pending( ) ) ;
168
- assert ! ( !flag. get ( ) ) ;
168
+ assert ! ( !flag. take ( ) ) ;
169
169
sassert_next ( & mut rx, 0 ) ;
170
- assert ! ( flag. get( ) ) ;
171
- flag. set ( false ) ;
170
+ assert ! ( flag. take( ) ) ;
172
171
unwrap ( task. poll_unpin ( cx) ) ;
173
- assert ! ( !flag. get ( ) ) ;
172
+ assert ! ( !flag. take ( ) ) ;
174
173
sassert_next ( & mut rx, 1 ) ;
175
174
} )
176
175
} ) ) ;
@@ -194,7 +193,7 @@ fn with_flush() {
194
193
let mut task = sink. flush ( ) ;
195
194
assert ! ( task. poll_unpin( cx) . is_pending( ) ) ;
196
195
tx. send ( ( ) ) . unwrap ( ) ;
197
- assert ! ( flag. get ( ) ) ;
196
+ assert ! ( flag. take ( ) ) ;
198
197
199
198
unwrap ( task. poll_unpin ( cx) ) ;
200
199
@@ -241,9 +240,9 @@ fn with_propagates_poll_ready() {
241
240
242
241
// Should be ready for the second item only after the first one is received.
243
242
assert_eq ! ( tx. as_mut( ) . poll_ready( cx) , Poll :: Pending ) ;
244
- assert ! ( !flag. get ( ) ) ;
243
+ assert ! ( !flag. take ( ) ) ;
245
244
sassert_next ( & mut rx, 10 ) ;
246
- assert ! ( flag. get ( ) ) ;
245
+ assert ! ( flag. take ( ) ) ;
247
246
assert_eq ! ( tx. as_mut( ) . poll_ready( cx) , Poll :: Ready ( Ok ( ( ) ) ) ) ;
248
247
assert_eq ! ( tx. as_mut( ) . start_send( 1 ) , Ok ( ( ) ) ) ;
249
248
} )
@@ -317,10 +316,10 @@ fn with_flush_propagate() {
317
316
{
318
317
let mut task = sink. flush ( ) ;
319
318
assert ! ( task. poll_unpin( cx) . is_pending( ) ) ;
320
- assert ! ( !flag. get ( ) ) ;
319
+ assert ! ( !flag. take ( ) ) ;
321
320
}
322
321
assert_eq ! ( sink. get_mut( ) . force_flush( ) , vec![ 0 , 1 ] ) ;
323
- assert ! ( flag. get ( ) ) ;
322
+ assert ! ( flag. take ( ) ) ;
324
323
unwrap ( sink. flush ( ) . poll_unpin ( cx) ) ;
325
324
} )
326
325
}
@@ -422,9 +421,9 @@ fn buffer() {
422
421
flag_cx ( |flag, cx| {
423
422
let mut task = sink. send ( 2 ) ;
424
423
assert ! ( task. poll_unpin( cx) . is_pending( ) ) ;
425
- assert ! ( !flag. get ( ) ) ;
424
+ assert ! ( !flag. take ( ) ) ;
426
425
allow. start ( ) ;
427
- assert ! ( flag. get ( ) ) ;
426
+ assert ! ( flag. take ( ) ) ;
428
427
unwrap ( task. poll_unpin ( cx) ) ;
429
428
assert_eq ! ( sink. get_ref( ) . data, vec![ 0 , 1 , 2 ] ) ;
430
429
} )
@@ -451,20 +450,20 @@ fn fanout_backpressure() {
451
450
452
451
flag_cx ( |flag, cx| {
453
452
let mut task = sink. send ( 2 ) ;
454
- assert ! ( !flag. get ( ) ) ;
453
+ assert ! ( !flag. take ( ) ) ;
455
454
assert ! ( task. poll_unpin( cx) . is_pending( ) ) ;
456
455
assert_eq ! ( block_on( left_recv. next( ) ) , Some ( 0 ) ) ;
457
- assert ! ( flag. get ( ) ) ;
456
+ assert ! ( flag. take ( ) ) ;
458
457
assert ! ( task. poll_unpin( cx) . is_pending( ) ) ;
459
458
assert_eq ! ( block_on( right_recv. next( ) ) , Some ( 0 ) ) ;
460
- assert ! ( flag. get ( ) ) ;
459
+ assert ! ( flag. take ( ) ) ;
461
460
462
461
assert ! ( task. poll_unpin( cx) . is_pending( ) ) ;
463
462
assert_eq ! ( block_on( left_recv. next( ) ) , Some ( 2 ) ) ;
464
- assert ! ( flag. get ( ) ) ;
463
+ assert ! ( flag. take ( ) ) ;
465
464
assert ! ( task. poll_unpin( cx) . is_pending( ) ) ;
466
465
assert_eq ! ( block_on( right_recv. next( ) ) , Some ( 2 ) ) ;
467
- assert ! ( flag. get ( ) ) ;
466
+ assert ! ( flag. take ( ) ) ;
468
467
469
468
unwrap ( task. poll_unpin ( cx) ) ;
470
469
// make sure receivers live until end of test to prevent send errors
0 commit comments