@@ -179,23 +179,23 @@ fn flatten() {
179
179
#[ test]
180
180
fn smoke_promise ( ) {
181
181
assert_done ( || {
182
- let ( p , c ) = promise ( ) ;
182
+ let ( c , p ) = promise ( ) ;
183
183
c. finish ( 1 ) ;
184
184
p
185
185
} , ok ( 1 ) ) ;
186
186
assert_done ( || {
187
- let ( p , c ) = promise ( ) ;
187
+ let ( c , p ) = promise ( ) ;
188
188
c. fail ( 1 ) ;
189
189
p
190
190
} , err ( 1 ) ) ;
191
191
let mut completes = Vec :: new ( ) ;
192
192
assert_empty ( || {
193
193
let ( a, b) = promise :: < i32 , u32 > ( ) ;
194
- completes. push ( b ) ;
195
- a
194
+ completes. push ( a ) ;
195
+ b
196
196
} ) ;
197
197
198
- let ( mut p, c ) = promise :: < i32 , u32 > ( ) ;
198
+ let ( c , mut p) = promise :: < i32 , u32 > ( ) ;
199
199
drop ( c) ;
200
200
assert_panic ( p. poll ( & Tokens :: all ( ) ) . expect ( "should be done" ) ) ;
201
201
assert_panic ( p. poll ( & Tokens :: all ( ) ) . expect ( "should be done2" ) ) ;
@@ -209,120 +209,120 @@ fn smoke_promise() {
209
209
#[ test]
210
210
fn select_cancels ( ) {
211
211
let ( ( a, b) , ( c, d) ) = ( promise :: < i32 , u32 > ( ) , promise :: < i32 , u32 > ( ) ) ;
212
- let ( ( atx , arx ) , ( ctx , crx ) ) = ( channel ( ) , channel ( ) ) ;
213
- let a = a . map ( move |a | { atx . send ( a ) . unwrap ( ) ; a } ) ;
214
- let c = c . map ( move |c | { ctx . send ( c ) . unwrap ( ) ; c } ) ;
212
+ let ( ( btx , brx ) , ( dtx , drx ) ) = ( channel ( ) , channel ( ) ) ;
213
+ let b = b . map ( move |b | { btx . send ( b ) . unwrap ( ) ; b } ) ;
214
+ let d = d . map ( move |d | { dtx . send ( d ) . unwrap ( ) ; d } ) ;
215
215
216
- let mut f = a . select ( c ) . then ( unselect) ;
216
+ let mut f = b . select ( d ) . then ( unselect) ;
217
217
// assert!(f.poll(&Tokens::all()).is_none());
218
- assert ! ( arx . try_recv( ) . is_err( ) ) ;
219
- assert ! ( crx . try_recv( ) . is_err( ) ) ;
220
- b . finish ( 1 ) ;
218
+ assert ! ( brx . try_recv( ) . is_err( ) ) ;
219
+ assert ! ( drx . try_recv( ) . is_err( ) ) ;
220
+ a . finish ( 1 ) ;
221
221
// f.schedule(|_| ());
222
222
assert ! ( f. poll( & Tokens :: all( ) ) . is_some( ) ) ;
223
- assert_eq ! ( arx . recv( ) . unwrap( ) , 1 ) ;
224
- drop ( ( d , f) ) ;
225
- assert ! ( crx . recv( ) . is_err( ) ) ;
223
+ assert_eq ! ( brx . recv( ) . unwrap( ) , 1 ) ;
224
+ drop ( ( c , f) ) ;
225
+ assert ! ( drx . recv( ) . is_err( ) ) ;
226
226
227
227
let ( ( a, b) , ( c, d) ) = ( promise :: < i32 , u32 > ( ) , promise :: < i32 , u32 > ( ) ) ;
228
- let ( ( atx , _arx ) , ( ctx , crx ) ) = ( channel ( ) , channel ( ) ) ;
229
- let a = a . map ( move |a | { atx . send ( a ) . unwrap ( ) ; a } ) ;
230
- let c = c . map ( move |c | { ctx . send ( c ) . unwrap ( ) ; c } ) ;
228
+ let ( ( btx , _brx ) , ( dtx , drx ) ) = ( channel ( ) , channel ( ) ) ;
229
+ let b = b . map ( move |b | { btx . send ( b ) . unwrap ( ) ; b } ) ;
230
+ let d = d . map ( move |d | { dtx . send ( d ) . unwrap ( ) ; d } ) ;
231
231
232
232
let ( tx, rx) = channel ( ) ;
233
233
let tx = Mutex :: new ( tx) ;
234
- let mut f = a . select ( c ) . then ( unselect) ;
234
+ let mut f = b . select ( d ) . then ( unselect) ;
235
235
assert ! ( f. poll( & Tokens :: all( ) ) . is_none( ) ) ;
236
236
f. schedule ( Arc :: new ( move |_: & Tokens | tx. lock ( ) . unwrap ( ) . send ( ( ) ) . unwrap ( ) ) ) ;
237
237
assert ! ( rx. try_recv( ) . is_err( ) ) ;
238
- b . finish ( 1 ) ;
238
+ a . finish ( 1 ) ;
239
239
assert ! ( rx. recv( ) . is_ok( ) ) ;
240
240
assert ! ( f. poll( & Tokens :: all( ) ) . is_some( ) ) ;
241
241
assert_panic ( f. poll ( & Tokens :: all ( ) ) . unwrap ( ) ) ;
242
- drop ( ( d , f) ) ;
243
- assert ! ( crx . recv( ) . is_err( ) ) ;
242
+ drop ( ( c , f) ) ;
243
+ assert ! ( drx . recv( ) . is_err( ) ) ;
244
244
}
245
245
246
246
#[ test]
247
247
fn join_cancels ( ) {
248
248
let ( ( a, b) , ( c, d) ) = ( promise :: < i32 , u32 > ( ) , promise :: < i32 , u32 > ( ) ) ;
249
- let ( ( atx , _arx ) , ( ctx , crx ) ) = ( channel ( ) , channel ( ) ) ;
250
- let a = a . map ( move |a | { atx . send ( a ) . unwrap ( ) ; a } ) ;
251
- let c = c . map ( move |c | { ctx . send ( c ) . unwrap ( ) ; c } ) ;
249
+ let ( ( btx , _brx ) , ( dtx , drx ) ) = ( channel ( ) , channel ( ) ) ;
250
+ let b = b . map ( move |b | { btx . send ( b ) . unwrap ( ) ; b } ) ;
251
+ let d = d . map ( move |d | { dtx . send ( d ) . unwrap ( ) ; d } ) ;
252
252
253
- let mut f = a . join ( c ) ;
254
- b . fail ( 1 ) ;
253
+ let mut f = b . join ( d ) ;
254
+ a . fail ( 1 ) ;
255
255
assert ! ( f. poll( & Tokens :: all( ) ) . is_some( ) ) ;
256
- drop ( ( d , f) ) ;
257
- assert ! ( crx . recv( ) . is_err( ) ) ;
256
+ drop ( ( c , f) ) ;
257
+ assert ! ( drx . recv( ) . is_err( ) ) ;
258
258
259
259
let ( ( a, b) , ( c, d) ) = ( promise :: < i32 , u32 > ( ) , promise :: < i32 , u32 > ( ) ) ;
260
- let ( ( atx , _arx ) , ( ctx , crx ) ) = ( channel ( ) , channel ( ) ) ;
261
- let a = a . map ( move |a | { atx . send ( a ) . unwrap ( ) ; a } ) ;
262
- let c = c . map ( move |c | { ctx . send ( c ) . unwrap ( ) ; c } ) ;
260
+ let ( ( btx , _brx ) , ( dtx , drx ) ) = ( channel ( ) , channel ( ) ) ;
261
+ let b = b . map ( move |b | { btx . send ( b ) . unwrap ( ) ; b } ) ;
262
+ let d = d . map ( move |d | { dtx . send ( d ) . unwrap ( ) ; d } ) ;
263
263
264
264
let ( tx, rx) = channel ( ) ;
265
265
let tx = Mutex :: new ( tx) ;
266
- let mut f = a . join ( c ) ;
266
+ let mut f = b . join ( d ) ;
267
267
f. schedule ( Arc :: new ( move |_: & Tokens | tx. lock ( ) . unwrap ( ) . send ( ( ) ) . unwrap ( ) ) ) ;
268
268
assert ! ( rx. try_recv( ) . is_err( ) ) ;
269
- b . fail ( 1 ) ;
269
+ a . fail ( 1 ) ;
270
270
assert ! ( f. poll( & Tokens :: all( ) ) . is_some( ) ) ;
271
271
assert_panic ( f. poll ( & Tokens :: all ( ) ) . unwrap ( ) ) ;
272
- drop ( ( d , f) ) ;
273
- assert ! ( crx . recv( ) . is_err( ) ) ;
272
+ drop ( ( c , f) ) ;
273
+ assert ! ( drx . recv( ) . is_err( ) ) ;
274
274
}
275
275
276
276
#[ test]
277
277
fn join_incomplete ( ) {
278
278
let ( a, b) = promise :: < i32 , u32 > ( ) ;
279
- let mut f = f_ok ( 1 ) . join ( a ) ;
279
+ let mut f = f_ok ( 1 ) . join ( b ) ;
280
280
assert ! ( f. poll( & Tokens :: all( ) ) . is_none( ) ) ;
281
281
let ( tx, rx) = channel ( ) ;
282
282
f. map ( move |r| tx. send ( r) . unwrap ( ) ) . forget ( ) ;
283
283
assert ! ( rx. try_recv( ) . is_err( ) ) ;
284
- b . finish ( 2 ) ;
284
+ a . finish ( 2 ) ;
285
285
assert_eq ! ( rx. recv( ) . unwrap( ) , ( 1 , 2 ) ) ;
286
286
287
287
let ( a, b) = promise :: < i32 , u32 > ( ) ;
288
- let mut f = a . join ( f_ok ( 2 ) ) ;
288
+ let mut f = b . join ( f_ok ( 2 ) ) ;
289
289
assert ! ( f. poll( & Tokens :: all( ) ) . is_none( ) ) ;
290
290
let ( tx, rx) = channel ( ) ;
291
291
f. map ( move |r| tx. send ( r) . unwrap ( ) ) . forget ( ) ;
292
292
assert ! ( rx. try_recv( ) . is_err( ) ) ;
293
- b . finish ( 1 ) ;
293
+ a . finish ( 1 ) ;
294
294
assert_eq ! ( rx. recv( ) . unwrap( ) , ( 1 , 2 ) ) ;
295
295
296
296
let ( a, b) = promise :: < i32 , u32 > ( ) ;
297
- let mut f = f_ok ( 1 ) . join ( a ) ;
297
+ let mut f = f_ok ( 1 ) . join ( b ) ;
298
298
assert ! ( f. poll( & Tokens :: all( ) ) . is_none( ) ) ;
299
299
let ( tx, rx) = channel ( ) ;
300
300
f. map_err ( move |r| tx. send ( r) . unwrap ( ) ) . forget ( ) ;
301
301
assert ! ( rx. try_recv( ) . is_err( ) ) ;
302
- b . fail ( 2 ) ;
302
+ a . fail ( 2 ) ;
303
303
assert_eq ! ( rx. recv( ) . unwrap( ) , 2 ) ;
304
304
305
305
let ( a, b) = promise :: < i32 , u32 > ( ) ;
306
- let mut f = a . join ( f_ok ( 2 ) ) ;
306
+ let mut f = b . join ( f_ok ( 2 ) ) ;
307
307
assert ! ( f. poll( & Tokens :: all( ) ) . is_none( ) ) ;
308
308
let ( tx, rx) = channel ( ) ;
309
309
f. map_err ( move |r| tx. send ( r) . unwrap ( ) ) . forget ( ) ;
310
310
assert ! ( rx. try_recv( ) . is_err( ) ) ;
311
- b . fail ( 1 ) ;
311
+ a . fail ( 1 ) ;
312
312
assert_eq ! ( rx. recv( ) . unwrap( ) , 1 ) ;
313
313
}
314
314
315
315
#[ test]
316
316
fn cancel_propagates ( ) {
317
- let mut f = promise :: < i32 , u32 > ( ) . 0 . then ( |_| -> Done < i32 , u32 > { panic ! ( ) } ) ;
317
+ let mut f = promise :: < i32 , u32 > ( ) . 1 . then ( |_| -> Done < i32 , u32 > { panic ! ( ) } ) ;
318
318
assert_panic ( f. poll ( & Tokens :: all ( ) ) . unwrap ( ) ) ;
319
- let mut f = promise :: < i32 , u32 > ( ) . 0 . and_then ( |_| -> Done < i32 , u32 > { panic ! ( ) } ) ;
319
+ let mut f = promise :: < i32 , u32 > ( ) . 1 . and_then ( |_| -> Done < i32 , u32 > { panic ! ( ) } ) ;
320
320
assert_panic ( f. poll ( & Tokens :: all ( ) ) . unwrap ( ) ) ;
321
- let mut f = promise :: < i32 , u32 > ( ) . 0 . or_else ( |_| -> Done < i32 , u32 > { panic ! ( ) } ) ;
321
+ let mut f = promise :: < i32 , u32 > ( ) . 1 . or_else ( |_| -> Done < i32 , u32 > { panic ! ( ) } ) ;
322
322
assert_panic ( f. poll ( & Tokens :: all ( ) ) . unwrap ( ) ) ;
323
- let mut f = promise :: < i32 , u32 > ( ) . 0 . map ( |_| panic ! ( ) ) ;
323
+ let mut f = promise :: < i32 , u32 > ( ) . 1 . map ( |_| panic ! ( ) ) ;
324
324
assert_panic ( f. poll ( & Tokens :: all ( ) ) . unwrap ( ) ) ;
325
- let mut f = promise :: < i32 , u32 > ( ) . 0 . map_err ( |_| panic ! ( ) ) ;
325
+ let mut f = promise :: < i32 , u32 > ( ) . 1 . map_err ( |_| panic ! ( ) ) ;
326
326
assert_panic ( f. poll ( & Tokens :: all ( ) ) . unwrap ( ) ) ;
327
327
}
328
328
@@ -359,71 +359,71 @@ fn select2() {
359
359
// get the notification of the second one.
360
360
{
361
361
let ( ( a, b) , ( c, d) ) = ( promise :: < i32 , u32 > ( ) , promise :: < i32 , u32 > ( ) ) ;
362
- let f = a . select ( c ) ;
362
+ let f = b . select ( d ) ;
363
363
let ( tx, rx) = channel ( ) ;
364
364
f. map ( move |r| tx. send ( r) . unwrap ( ) ) . forget ( ) ;
365
- b . finish ( 1 ) ;
365
+ a . finish ( 1 ) ;
366
366
let ( val, next) = rx. recv ( ) . unwrap ( ) ;
367
367
assert_eq ! ( val, 1 ) ;
368
368
let ( tx, rx) = channel ( ) ;
369
369
next. map_err ( move |r| tx. send ( r) . unwrap ( ) ) . forget ( ) ;
370
370
assert_eq ! ( rx. try_recv( ) . err( ) . unwrap( ) , TryRecvError :: Empty ) ;
371
- d . fail ( 2 ) ;
371
+ c . fail ( 2 ) ;
372
372
assert_eq ! ( rx. recv( ) . unwrap( ) , 2 ) ;
373
373
}
374
374
375
375
// Fail the second half and ensure that we see the first one finish
376
376
{
377
377
let ( ( a, b) , ( c, d) ) = ( promise :: < i32 , u32 > ( ) , promise :: < i32 , u32 > ( ) ) ;
378
- let f = a . select ( c ) ;
378
+ let f = b . select ( d ) ;
379
379
let ( tx, rx) = channel ( ) ;
380
380
f. map_err ( move |r| tx. send ( r) . unwrap ( ) ) . forget ( ) ;
381
- d . fail ( 1 ) ;
381
+ c . fail ( 1 ) ;
382
382
let ( val, next) = rx. recv ( ) . unwrap ( ) ;
383
383
assert_eq ! ( val, 1 ) ;
384
384
let ( tx, rx) = channel ( ) ;
385
385
next. map ( move |r| tx. send ( r) . unwrap ( ) ) . forget ( ) ;
386
386
assert_eq ! ( rx. try_recv( ) . err( ) . unwrap( ) , TryRecvError :: Empty ) ;
387
- b . finish ( 2 ) ;
387
+ a . finish ( 2 ) ;
388
388
assert_eq ! ( rx. recv( ) . unwrap( ) , 2 ) ;
389
389
}
390
390
391
391
// Cancelling the first half should cancel the second
392
392
{
393
- let ( ( a , _b ) , ( c , _d ) ) = ( promise :: < i32 , u32 > ( ) , promise :: < i32 , u32 > ( ) ) ;
394
- let ( ( atx , arx ) , ( ctx , crx ) ) = ( channel ( ) , channel ( ) ) ;
395
- let a = a . map ( move |v| { atx . send ( v) . unwrap ( ) ; v } ) ;
396
- let c = c . map ( move |v| { ctx . send ( v) . unwrap ( ) ; v } ) ;
397
- let f = a . select ( c ) ;
393
+ let ( ( _a , b ) , ( _c , d ) ) = ( promise :: < i32 , u32 > ( ) , promise :: < i32 , u32 > ( ) ) ;
394
+ let ( ( btx , brx ) , ( dtx , drx ) ) = ( channel ( ) , channel ( ) ) ;
395
+ let b = b . map ( move |v| { btx . send ( v) . unwrap ( ) ; v } ) ;
396
+ let d = d . map ( move |v| { dtx . send ( v) . unwrap ( ) ; v } ) ;
397
+ let f = b . select ( d ) ;
398
398
drop ( f) ;
399
- assert ! ( crx . recv( ) . is_err( ) ) ;
400
- assert ! ( arx . recv( ) . is_err( ) ) ;
399
+ assert ! ( drx . recv( ) . is_err( ) ) ;
400
+ assert ! ( brx . recv( ) . is_err( ) ) ;
401
401
}
402
402
403
403
// Cancel after a schedule
404
404
{
405
- let ( ( a , _b ) , ( c , _d ) ) = ( promise :: < i32 , u32 > ( ) , promise :: < i32 , u32 > ( ) ) ;
406
- let ( ( atx , arx ) , ( ctx , crx ) ) = ( channel ( ) , channel ( ) ) ;
407
- let a = a . map ( move |v| { atx . send ( v) . unwrap ( ) ; v } ) ;
408
- let c = c . map ( move |v| { ctx . send ( v) . unwrap ( ) ; v } ) ;
409
- let mut f = a . select ( c ) ;
405
+ let ( ( _a , b ) , ( _c , d ) ) = ( promise :: < i32 , u32 > ( ) , promise :: < i32 , u32 > ( ) ) ;
406
+ let ( ( btx , brx ) , ( dtx , drx ) ) = ( channel ( ) , channel ( ) ) ;
407
+ let b = b . map ( move |v| { btx . send ( v) . unwrap ( ) ; v } ) ;
408
+ let d = d . map ( move |v| { dtx . send ( v) . unwrap ( ) ; v } ) ;
409
+ let mut f = b . select ( d ) ;
410
410
f. schedule ( Arc :: new ( |_: & Tokens | ( ) ) ) ;
411
411
drop ( f) ;
412
- assert ! ( crx . recv( ) . is_err( ) ) ;
413
- assert ! ( arx . recv( ) . is_err( ) ) ;
412
+ assert ! ( drx . recv( ) . is_err( ) ) ;
413
+ assert ! ( brx . recv( ) . is_err( ) ) ;
414
414
}
415
415
416
416
// Cancel propagates
417
417
{
418
- let ( ( a, b) , ( c , _d ) ) = ( promise :: < i32 , u32 > ( ) , promise :: < i32 , u32 > ( ) ) ;
419
- let ( ( atx , arx ) , ( ctx , crx ) ) = ( channel ( ) , channel ( ) ) ;
420
- let a = a . map ( move |v| { atx . send ( v) . unwrap ( ) ; v } ) ;
421
- let c = c . map ( move |v| { ctx . send ( v) . unwrap ( ) ; v } ) ;
418
+ let ( ( a, b) , ( _c , d ) ) = ( promise :: < i32 , u32 > ( ) , promise :: < i32 , u32 > ( ) ) ;
419
+ let ( ( btx , brx ) , ( dtx , drx ) ) = ( channel ( ) , channel ( ) ) ;
420
+ let b = b . map ( move |v| { btx . send ( v) . unwrap ( ) ; v } ) ;
421
+ let d = d . map ( move |v| { dtx . send ( v) . unwrap ( ) ; v } ) ;
422
422
let ( tx, rx) = channel ( ) ;
423
- a . select ( c ) . map ( move |_| tx. send ( ( ) ) . unwrap ( ) ) . forget ( ) ;
424
- drop ( b ) ;
425
- assert ! ( crx . recv( ) . is_err( ) ) ;
426
- assert ! ( arx . recv( ) . is_err( ) ) ;
423
+ b . select ( d ) . map ( move |_| tx. send ( ( ) ) . unwrap ( ) ) . forget ( ) ;
424
+ drop ( a ) ;
425
+ assert ! ( drx . recv( ) . is_err( ) ) ;
426
+ assert ! ( brx . recv( ) . is_err( ) ) ;
427
427
assert ! ( rx. recv( ) . is_err( ) ) ;
428
428
}
429
429
0 commit comments