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 29
29
uses : actions-rs/cargo@v1
30
30
with :
31
31
command : test
32
- args : --features unstable
Original file line number Diff line number Diff line change 1
1
[package ]
2
2
name = " stop-token"
3
- version = " 0.1.2 "
3
+ version = " 0.2.0 "
4
4
authors = [" Aleksey Kladov <aleksey.kladov@gmail.com>" ]
5
5
edition = " 2018"
6
6
license = " MIT OR Apache-2.0"
@@ -9,8 +9,5 @@ repository = "https://github.com/async-rs/stop-token"
9
9
description = " Experimental cooperative cancellation for async-std"
10
10
11
11
[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;
71
71
use std:: task:: { Context , Poll } ;
72
72
73
73
use async_std:: prelude:: * ;
74
- use async_std:: sync:: { channel, Receiver , Sender } ;
74
+
75
+ use async_std:: channel:: { self , Receiver , Sender } ;
75
76
use pin_project_lite:: pin_project;
76
77
77
78
enum Never { }
@@ -101,7 +102,7 @@ pub struct StopToken {
101
102
102
103
impl Default for StopSource {
103
104
fn default ( ) -> StopSource {
104
- let ( sender, receiver) = channel :: < Never > ( 1 ) ;
105
+ let ( sender, receiver) = channel:: bounded :: < Never > ( 1 ) ;
105
106
106
107
StopSource {
107
108
_chan : sender,
Original file line number Diff line number Diff line change 1
1
use std:: time:: Duration ;
2
2
3
- use async_std:: { prelude:: * , task, sync:: channel} ;
3
+ use async_std:: prelude:: * ;
4
+
5
+ use async_std:: channel;
6
+ use async_std:: task;
4
7
5
8
use stop_token:: StopSource ;
6
9
7
10
#[ test]
8
11
fn smoke ( ) {
9
12
task:: block_on ( async {
10
- let ( sender, receiver) = channel :: < i32 > ( 10 ) ;
13
+ let ( sender, receiver) = channel:: bounded :: < i32 > ( 10 ) ;
11
14
let stop_source = StopSource :: new ( ) ;
12
15
let task = task:: spawn ( {
13
16
let stop_token = stop_source. stop_token ( ) ;
14
17
let receiver = receiver. clone ( ) ;
15
18
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
20
25
}
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 ( ) ;
26
30
27
31
task:: sleep ( Duration :: from_millis ( 250 ) ) . await ;
28
32
drop ( stop_source) ;
29
33
task:: sleep ( Duration :: from_millis ( 250 ) ) . await ;
30
34
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 ( ) ;
34
38
assert_eq ! ( task. await , vec![ 1 , 2 , 3 ] ) ;
35
39
} )
36
40
}
You can’t perform that action at this time.
0 commit comments