aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-03-16 22:41:32 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-03-16 22:41:32 +0000
commit8d80cd1c7d22578043cc1a0f8ad34b8ee77739ad (patch)
tree4bd872c7931921cfe12cc2fa1b72915778e481d3
parent0f90a74cfab4221785a8f5e6771ec7b64284272b (diff)
parent3ccd22c1882fcff9f5442478123ad654ce0b9105 (diff)
downloadfutures-channel-android13-mainline-adservices-release.tar.gz
Change-Id: I216f5906372239872d71723489af8952fc9c8cdc
-rw-r--r--.cargo_vcs_info.json7
-rw-r--r--Android.bp2
-rw-r--r--Cargo.toml25
-rw-r--r--Cargo.toml.orig9
-rw-r--r--METADATA10
-rw-r--r--README.md23
-rw-r--r--build.rs21
-rw-r--r--no_atomic_cas.rs2
-rw-r--r--tests/mpsc-close.rs1
-rw-r--r--tests/mpsc.rs25
-rw-r--r--tests/oneshot.rs14
11 files changed, 101 insertions, 38 deletions
diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json
index ffd4f55..deccf0d 100644
--- a/.cargo_vcs_info.json
+++ b/.cargo_vcs_info.json
@@ -1,5 +1,6 @@
{
"git": {
- "sha1": "7caefa51304e78fd5018cd5d2a03f3b9089cc010"
- }
-}
+ "sha1": "fc1e3250219170e31cddb8857a276cba7dd08d44"
+ },
+ "path_in_vcs": "futures-channel"
+} \ No newline at end of file
diff --git a/Android.bp b/Android.bp
index 582a0ff..c7bc955 100644
--- a/Android.bp
+++ b/Android.bp
@@ -46,7 +46,7 @@ rust_library {
host_supported: true,
crate_name: "futures_channel",
cargo_env_compat: true,
- cargo_pkg_version: "0.3.17",
+ cargo_pkg_version: "0.3.21",
srcs: ["src/lib.rs"],
edition: "2018",
features: [
diff --git a/Cargo.toml b/Cargo.toml
index bea8d51..d0a13f6 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -11,23 +11,29 @@
[package]
edition = "2018"
+rust-version = "1.45"
name = "futures-channel"
-version = "0.3.17"
-authors = ["Alex Crichton <alex@alexcrichton.com>"]
-description = "Channels for asynchronous communication using futures-rs.\n"
+version = "0.3.21"
+description = """
+Channels for asynchronous communication using futures-rs.
+"""
homepage = "https://rust-lang.github.io/futures-rs"
-documentation = "https://docs.rs/futures-channel/0.3"
license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-lang/futures-rs"
+
[package.metadata.docs.rs]
all-features = true
-rustdoc-args = ["--cfg", "docsrs"]
+rustdoc-args = [
+ "--cfg",
+ "docsrs",
+]
+
[dependencies.futures-core]
-version = "0.3.17"
+version = "0.3.21"
default-features = false
[dependencies.futures-sink]
-version = "0.3.17"
+version = "0.3.21"
optional = true
default-features = false
@@ -38,5 +44,8 @@ alloc = ["futures-core/alloc"]
cfg-target-has-atomic = []
default = ["std"]
sink = ["futures-sink"]
-std = ["alloc", "futures-core/std"]
+std = [
+ "alloc",
+ "futures-core/std",
+]
unstable = []
diff --git a/Cargo.toml.orig b/Cargo.toml.orig
index 6bd240c..f356eab 100644
--- a/Cargo.toml.orig
+++ b/Cargo.toml.orig
@@ -1,12 +1,11 @@
[package]
name = "futures-channel"
+version = "0.3.21"
edition = "2018"
-version = "0.3.17"
-authors = ["Alex Crichton <alex@alexcrichton.com>"]
+rust-version = "1.45"
license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-lang/futures-rs"
homepage = "https://rust-lang.github.io/futures-rs"
-documentation = "https://docs.rs/futures-channel/0.3"
description = """
Channels for asynchronous communication using futures-rs.
"""
@@ -23,8 +22,8 @@ unstable = []
cfg-target-has-atomic = []
[dependencies]
-futures-core = { path = "../futures-core", version = "0.3.17", default-features = false }
-futures-sink = { path = "../futures-sink", version = "0.3.17", default-features = false, optional = true }
+futures-core = { path = "../futures-core", version = "0.3.21", default-features = false }
+futures-sink = { path = "../futures-sink", version = "0.3.21", default-features = false, optional = true }
[dev-dependencies]
futures = { path = "../futures", default-features = true }
diff --git a/METADATA b/METADATA
index fc42915..29bf06e 100644
--- a/METADATA
+++ b/METADATA
@@ -7,13 +7,13 @@ third_party {
}
url {
type: ARCHIVE
- value: "https://static.crates.io/crates/futures-channel/futures-channel-0.3.17.crate"
+ value: "https://static.crates.io/crates/futures-channel/futures-channel-0.3.21.crate"
}
- version: "0.3.17"
+ version: "0.3.21"
license_type: NOTICE
last_upgrade_date {
- year: 2021
- month: 9
- day: 22
+ year: 2022
+ month: 3
+ day: 1
}
}
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..3287be9
--- /dev/null
+++ b/README.md
@@ -0,0 +1,23 @@
+# futures-channel
+
+Channels for asynchronous communication using futures-rs.
+
+## Usage
+
+Add this to your `Cargo.toml`:
+
+```toml
+[dependencies]
+futures-channel = "0.3"
+```
+
+The current `futures-channel` requires Rust 1.45 or later.
+
+## License
+
+Licensed under either of [Apache License, Version 2.0](LICENSE-APACHE) or
+[MIT license](LICENSE-MIT) at your option.
+
+Unless you explicitly state otherwise, any contribution intentionally submitted
+for inclusion in the work by you, as defined in the Apache-2.0 license, shall
+be dual licensed as above, without any additional terms or conditions.
diff --git a/build.rs b/build.rs
index 07b50bd..05e0496 100644
--- a/build.rs
+++ b/build.rs
@@ -1,9 +1,3 @@
-#![warn(rust_2018_idioms, single_use_lifetimes)]
-
-use std::env;
-
-include!("no_atomic_cas.rs");
-
// The rustc-cfg listed below are considered public API, but it is *unstable*
// and outside of the normal semver guarantees:
//
@@ -13,10 +7,15 @@ include!("no_atomic_cas.rs");
// need to enable it manually when building for custom targets or using
// non-cargo build systems that don't run the build script.
//
-// With the exceptions mentioned above, the rustc-cfg strings below are
-// *not* public API. Please let us know by opening a GitHub issue if your build
-// environment requires some way to enable these cfgs other than by executing
-// our build script.
+// With the exceptions mentioned above, the rustc-cfg emitted by the build
+// script are *not* public API.
+
+#![warn(rust_2018_idioms, single_use_lifetimes)]
+
+use std::env;
+
+include!("no_atomic_cas.rs");
+
fn main() {
let target = match env::var("TARGET") {
Ok(target) => target,
@@ -34,7 +33,7 @@ fn main() {
// `cfg(target_has_atomic = "ptr")` as true when the build script doesn't
// run. This is needed for compatibility with non-cargo build systems that
// don't run the build script.
- if NO_ATOMIC_CAS_TARGETS.contains(&&*target) {
+ if NO_ATOMIC_CAS.contains(&&*target) {
println!("cargo:rustc-cfg=futures_no_atomic_cas");
}
diff --git a/no_atomic_cas.rs b/no_atomic_cas.rs
index 4708bf8..9b05d4b 100644
--- a/no_atomic_cas.rs
+++ b/no_atomic_cas.rs
@@ -1,7 +1,7 @@
// This file is @generated by no_atomic_cas.sh.
// It is not intended for manual editing.
-const NO_ATOMIC_CAS_TARGETS: &[&str] = &[
+const NO_ATOMIC_CAS: &[&str] = &[
"avr-unknown-gnu-atmega328",
"bpfeb-unknown-none",
"bpfel-unknown-none",
diff --git a/tests/mpsc-close.rs b/tests/mpsc-close.rs
index 81203d3..1a14067 100644
--- a/tests/mpsc-close.rs
+++ b/tests/mpsc-close.rs
@@ -147,6 +147,7 @@ fn single_receiver_drop_closes_channel_and_drains() {
// Stress test that `try_send()`s occurring concurrently with receiver
// close/drops don't appear as successful sends.
+#[cfg_attr(miri, ignore)] // Miri is too slow
#[test]
fn stress_try_send_as_receiver_closes() {
const AMT: usize = 10000;
diff --git a/tests/mpsc.rs b/tests/mpsc.rs
index 88cdef1..da0899d 100644
--- a/tests/mpsc.rs
+++ b/tests/mpsc.rs
@@ -200,6 +200,9 @@ fn tx_close_gets_none() {
#[test]
fn stress_shared_unbounded() {
+ #[cfg(miri)]
+ const AMT: u32 = 100;
+ #[cfg(not(miri))]
const AMT: u32 = 10000;
const NTHREADS: u32 = 8;
let (tx, rx) = mpsc::unbounded::<i32>();
@@ -229,6 +232,9 @@ fn stress_shared_unbounded() {
#[test]
fn stress_shared_bounded_hard() {
+ #[cfg(miri)]
+ const AMT: u32 = 100;
+ #[cfg(not(miri))]
const AMT: u32 = 10000;
const NTHREADS: u32 = 8;
let (tx, rx) = mpsc::channel::<i32>(0);
@@ -259,6 +265,9 @@ fn stress_shared_bounded_hard() {
#[allow(clippy::same_item_push)]
#[test]
fn stress_receiver_multi_task_bounded_hard() {
+ #[cfg(miri)]
+ const AMT: usize = 100;
+ #[cfg(not(miri))]
const AMT: usize = 10_000;
const NTHREADS: u32 = 2;
@@ -327,6 +336,11 @@ fn stress_receiver_multi_task_bounded_hard() {
/// after sender dropped.
#[test]
fn stress_drop_sender() {
+ #[cfg(miri)]
+ const ITER: usize = 100;
+ #[cfg(not(miri))]
+ const ITER: usize = 10000;
+
fn list() -> impl Stream<Item = i32> {
let (tx, rx) = mpsc::channel(1);
thread::spawn(move || {
@@ -335,7 +349,7 @@ fn stress_drop_sender() {
rx
}
- for _ in 0..10000 {
+ for _ in 0..ITER {
let v: Vec<_> = block_on(list().collect());
assert_eq!(v, vec![1, 2, 3]);
}
@@ -380,9 +394,12 @@ fn stress_close_receiver_iter() {
}
}
+#[cfg_attr(miri, ignore)] // Miri is too slow
#[test]
fn stress_close_receiver() {
- for _ in 0..10000 {
+ const ITER: usize = 10000;
+
+ for _ in 0..ITER {
stress_close_receiver_iter();
}
}
@@ -397,6 +414,9 @@ async fn stress_poll_ready_sender(mut sender: mpsc::Sender<u32>, count: u32) {
#[allow(clippy::same_item_push)]
#[test]
fn stress_poll_ready() {
+ #[cfg(miri)]
+ const AMT: u32 = 100;
+ #[cfg(not(miri))]
const AMT: u32 = 1000;
const NTHREADS: u32 = 8;
@@ -424,6 +444,7 @@ fn stress_poll_ready() {
stress(16);
}
+#[cfg_attr(miri, ignore)] // Miri is too slow
#[test]
fn try_send_1() {
const N: usize = 3000;
diff --git a/tests/oneshot.rs b/tests/oneshot.rs
index 979cd8a..c9f5508 100644
--- a/tests/oneshot.rs
+++ b/tests/oneshot.rs
@@ -35,6 +35,11 @@ fn cancel_notifies() {
#[test]
fn cancel_lots() {
+ #[cfg(miri)]
+ const N: usize = 100;
+ #[cfg(not(miri))]
+ const N: usize = 20000;
+
let (tx, rx) = mpsc::channel::<(Sender<_>, mpsc::Sender<_>)>();
let t = thread::spawn(move || {
for (mut tx, tx2) in rx {
@@ -43,7 +48,7 @@ fn cancel_lots() {
}
});
- for _ in 0..20000 {
+ for _ in 0..N {
let (otx, orx) = oneshot::channel::<u32>();
let (tx2, rx2) = mpsc::channel();
tx.send((otx, tx2)).unwrap();
@@ -101,6 +106,11 @@ fn is_canceled() {
#[test]
fn cancel_sends() {
+ #[cfg(miri)]
+ const N: usize = 100;
+ #[cfg(not(miri))]
+ const N: usize = 20000;
+
let (tx, rx) = mpsc::channel::<Sender<_>>();
let t = thread::spawn(move || {
for otx in rx {
@@ -108,7 +118,7 @@ fn cancel_sends() {
}
});
- for _ in 0..20000 {
+ for _ in 0..N {
let (otx, mut orx) = oneshot::channel::<u32>();
tx.send(otx).unwrap();