Skip to content

Commit 7e42721

Browse files
authored
Merge pull request #7 from flub/stable-async-std
Support stable async-std
2 parents d9cef9b + e9b426d commit 7e42721

File tree

4 files changed

+24
-23
lines changed

4 files changed

+24
-23
lines changed

.github/workflows/ci.yml

-1
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,3 @@ jobs:
2929
uses: actions-rs/cargo@v1
3030
with:
3131
command: test
32-
args: --features unstable

Cargo.toml

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "stop-token"
3-
version = "0.1.2"
3+
version = "0.2.0"
44
authors = ["Aleksey Kladov <[email protected]>"]
55
edition = "2018"
66
license = "MIT OR Apache-2.0"
@@ -9,8 +9,5 @@ repository = "https://github.com/async-rs/stop-token"
99
description = "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"

src/lib.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ use std::pin::Pin;
7171
use std::task::{Context, Poll};
7272

7373
use async_std::prelude::*;
74-
use async_std::sync::{channel, Receiver, Sender};
74+
75+
use async_std::channel::{self, Receiver, Sender};
7576
use pin_project_lite::pin_project;
7677

7778
enum Never {}
@@ -101,7 +102,7 @@ pub struct StopToken {
101102

102103
impl 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,

tests/tests.rs

+18-14
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,40 @@
11
use 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

58
use stop_token::StopSource;
69

710
#[test]
811
fn 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
}

0 commit comments

Comments
 (0)