File tree Expand file tree Collapse file tree 4 files changed +24
-23
lines changed Expand file tree Collapse file tree 4 files changed +24
-23
lines changed Original file line number Diff line number Diff line change 2929 uses : actions-rs/cargo@v1
3030 with :
3131 command : test
32- args : --features unstable
Original file line number Diff line number Diff line change 11[package ]
22name = " stop-token"
3- version = " 0.1.2 "
3+ version = " 0.2.0 "
44authors = [" Aleksey Kladov <aleksey.kladov@gmail.com>" ]
55edition = " 2018"
66license = " MIT OR Apache-2.0"
@@ -9,8 +9,5 @@ repository = "https://github.com/async-rs/stop-token"
99description = " Experimental cooperative cancellation for async-std"
1010
1111[dependencies ]
12- pin-project-lite = " 0.1.0"
13- async-std = " 1.0"
14-
15- [features ]
16- unstable = [" async-std/unstable" ]
12+ pin-project-lite = " 0.2.0"
13+ async-std = " 1.8"
Original file line number Diff line number Diff line change @@ -71,7 +71,8 @@ use std::pin::Pin;
7171use std:: task:: { Context , Poll } ;
7272
7373use async_std:: prelude:: * ;
74- use async_std:: sync:: { channel, Receiver , Sender } ;
74+
75+ use async_std:: channel:: { self , Receiver , Sender } ;
7576use pin_project_lite:: pin_project;
7677
7778enum Never { }
@@ -101,7 +102,7 @@ pub struct StopToken {
101102
102103impl Default for StopSource {
103104 fn default ( ) -> StopSource {
104- let ( sender, receiver) = channel :: < Never > ( 1 ) ;
105+ let ( sender, receiver) = channel:: bounded :: < Never > ( 1 ) ;
105106
106107 StopSource {
107108 _chan : sender,
Original file line number Diff line number Diff line change 11use std:: time:: Duration ;
22
3- use async_std:: { prelude:: * , task, sync:: channel} ;
3+ use async_std:: prelude:: * ;
4+
5+ use async_std:: channel;
6+ use async_std:: task;
47
58use stop_token:: StopSource ;
69
710#[ test]
811fn smoke ( ) {
912 task:: block_on ( async {
10- let ( sender, receiver) = channel :: < i32 > ( 10 ) ;
13+ let ( sender, receiver) = channel:: bounded :: < i32 > ( 10 ) ;
1114 let stop_source = StopSource :: new ( ) ;
1215 let task = task:: spawn ( {
1316 let stop_token = stop_source. stop_token ( ) ;
1417 let receiver = receiver. clone ( ) ;
1518 async move {
16- let mut xs = Vec :: new ( ) ;
17- let mut stream = stop_token. stop_stream ( receiver) ;
18- while let Some ( x) = stream. next ( ) . await {
19- xs. push ( x)
19+ let mut xs = Vec :: new ( ) ;
20+ let mut stream = stop_token. stop_stream ( receiver) ;
21+ while let Some ( x) = stream. next ( ) . await {
22+ xs. push ( x)
23+ }
24+ xs
2025 }
21- xs
22- } } ) ;
23- sender. send ( 1 ) . await ;
24- sender. send ( 2 ) . await ;
25- sender. send ( 3 ) . await ;
26+ } ) ;
27+ sender. send ( 1 ) . await . unwrap ( ) ;
28+ sender. send ( 2 ) . await . unwrap ( ) ;
29+ sender. send ( 3 ) . await . unwrap ( ) ;
2630
2731 task:: sleep ( Duration :: from_millis ( 250 ) ) . await ;
2832 drop ( stop_source) ;
2933 task:: sleep ( Duration :: from_millis ( 250 ) ) . await ;
3034
31- sender. send ( 4 ) . await ;
32- sender. send ( 5 ) . await ;
33- sender. send ( 6 ) . await ;
35+ sender. send ( 4 ) . await . unwrap ( ) ;
36+ sender. send ( 5 ) . await . unwrap ( ) ;
37+ sender. send ( 6 ) . await . unwrap ( ) ;
3438 assert_eq ! ( task. await , vec![ 1 , 2 , 3 ] ) ;
3539 } )
3640}
You can’t perform that action at this time.
0 commit comments