Skip to content

Commit

Permalink
AtomicCell: Use atomic-maybe-uninit
Browse files Browse the repository at this point in the history
  • Loading branch information
taiki-e committed Aug 15, 2023
1 parent 03d68a2 commit f6c99b8
Show file tree
Hide file tree
Showing 23 changed files with 395 additions and 231 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ jobs:
matrix:
# aarch64/x86_64 macOS and aarch64 Linux are tested on Cirrus CI
include:
- rust: '1.38'
- rust: '1.59'
os: ubuntu-latest
- rust: '1.38'
- rust: '1.59'
os: windows-latest
- rust: stable
os: ubuntu-latest
Expand Down Expand Up @@ -83,7 +83,7 @@ jobs:
fail-fast: false
matrix:
rust:
- '1.38'
- '1.59'
- nightly
runs-on: ubuntu-latest
steps:
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ name = "crossbeam"
# - Create "crossbeam-X.Y.Z" git tag
version = "0.8.2"
edition = "2018"
rust-version = "1.38"
rust-version = "1.59"
license = "MIT OR Apache-2.0"
repository = "https://github.com/crossbeam-rs/crossbeam"
homepage = "https://github.com/crossbeam-rs/crossbeam"
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ https://github.com/crossbeam-rs/crossbeam#license)
https://crates.io/crates/crossbeam)
[![Documentation](https://docs.rs/crossbeam/badge.svg)](
https://docs.rs/crossbeam)
[![Rust 1.38+](https://img.shields.io/badge/rust-1.38+-lightgray.svg)](
[![Rust 1.59+](https://img.shields.io/badge/rust-1.59+-lightgray.svg)](
https://www.rust-lang.org)
[![chat](https://img.shields.io/discord/569610676205781012.svg?logo=discord)](https://discord.com/invite/JXYwgWZ)

Expand Down Expand Up @@ -94,7 +94,7 @@ crossbeam = "0.8"

Crossbeam supports stable Rust releases going back at least six months,
and every time the minimum supported Rust version is increased, a new minor
version is released. Currently, the minimum supported Rust version is 1.38.
version is released. Currently, the minimum supported Rust version is 1.59.

## Contributing

Expand Down
2 changes: 1 addition & 1 deletion crossbeam-channel/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ name = "crossbeam-channel"
# - Create "crossbeam-channel-X.Y.Z" git tag
version = "0.5.8"
edition = "2018"
rust-version = "1.38"
rust-version = "1.59"
license = "MIT OR Apache-2.0"
repository = "https://github.com/crossbeam-rs/crossbeam"
homepage = "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-channel"
Expand Down
4 changes: 2 additions & 2 deletions crossbeam-channel/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-channel#license)
https://crates.io/crates/crossbeam-channel)
[![Documentation](https://docs.rs/crossbeam-channel/badge.svg)](
https://docs.rs/crossbeam-channel)
[![Rust 1.38+](https://img.shields.io/badge/rust-1.38+-lightgray.svg)](
[![Rust 1.59+](https://img.shields.io/badge/rust-1.59+-lightgray.svg)](
https://www.rust-lang.org)
[![chat](https://img.shields.io/discord/569610676205781012.svg?logo=discord)](https://discord.com/invite/JXYwgWZ)

Expand Down Expand Up @@ -48,7 +48,7 @@ crossbeam-channel = "0.5"

Crossbeam Channel supports stable Rust releases going back at least six months,
and every time the minimum supported Rust version is increased, a new minor
version is released. Currently, the minimum supported Rust version is 1.38.
version is released. Currently, the minimum supported Rust version is 1.59.

## License

Expand Down
2 changes: 1 addition & 1 deletion crossbeam-channel/examples/stopwatch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ fn main() {
// Creates a channel that gets a message every time `SIGINT` is signalled.
fn sigint_notifier() -> io::Result<Receiver<()>> {
let (s, r) = bounded(100);
let mut signals = Signals::new(&[SIGINT])?;
let mut signals = Signals::new([SIGINT])?;

thread::spawn(move || {
for _ in signals.forever() {
Expand Down
1 change: 1 addition & 0 deletions crossbeam-channel/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,7 @@
unreachable_pub
)]
#![cfg_attr(not(feature = "std"), no_std)]
#![allow(clippy::match_like_matches_macro)]

use cfg_if::cfg_if;

Expand Down
6 changes: 3 additions & 3 deletions crossbeam-channel/src/select.rs
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,10 @@ impl From<usize> for Selected {
}
}

impl Into<usize> for Selected {
impl From<Selected> for usize {
#[inline]
fn into(self) -> usize {
match self {
fn from(val: Selected) -> Self {
match val {
Selected::Waiting => 0,
Selected::Aborted => 1,
Selected::Disconnected => 2,
Expand Down
2 changes: 1 addition & 1 deletion crossbeam-deque/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ name = "crossbeam-deque"
# - Create "crossbeam-deque-X.Y.Z" git tag
version = "0.8.3"
edition = "2018"
rust-version = "1.38"
rust-version = "1.59"
license = "MIT OR Apache-2.0"
repository = "https://github.com/crossbeam-rs/crossbeam"
homepage = "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-deque"
Expand Down
4 changes: 2 additions & 2 deletions crossbeam-deque/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-deque#license)
https://crates.io/crates/crossbeam-deque)
[![Documentation](https://docs.rs/crossbeam-deque/badge.svg)](
https://docs.rs/crossbeam-deque)
[![Rust 1.38+](https://img.shields.io/badge/rust-1.38+-lightgray.svg)](
[![Rust 1.59+](https://img.shields.io/badge/rust-1.59+-lightgray.svg)](
https://www.rust-lang.org)
[![chat](https://img.shields.io/discord/569610676205781012.svg?logo=discord)](https://discord.com/invite/JXYwgWZ)

Expand All @@ -28,7 +28,7 @@ crossbeam-deque = "0.8"

Crossbeam Deque supports stable Rust releases going back at least six months,
and every time the minimum supported Rust version is increased, a new minor
version is released. Currently, the minimum supported Rust version is 1.38.
version is released. Currently, the minimum supported Rust version is 1.59.

## License

Expand Down
1 change: 1 addition & 0 deletions crossbeam-deque/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@
unreachable_pub
)]
#![cfg_attr(not(feature = "std"), no_std)]
#![allow(clippy::match_like_matches_macro)]

use cfg_if::cfg_if;

Expand Down
2 changes: 1 addition & 1 deletion crossbeam-epoch/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ name = "crossbeam-epoch"
# - Create "crossbeam-epoch-X.Y.Z" git tag
version = "0.9.15"
edition = "2018"
rust-version = "1.38"
rust-version = "1.59"
license = "MIT OR Apache-2.0"
repository = "https://github.com/crossbeam-rs/crossbeam"
homepage = "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-epoch"
Expand Down
4 changes: 2 additions & 2 deletions crossbeam-epoch/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-epoch#license)
https://crates.io/crates/crossbeam-epoch)
[![Documentation](https://docs.rs/crossbeam-epoch/badge.svg)](
https://docs.rs/crossbeam-epoch)
[![Rust 1.38+](https://img.shields.io/badge/rust-1.38+-lightgray.svg)](
[![Rust 1.59+](https://img.shields.io/badge/rust-1.59+-lightgray.svg)](
https://www.rust-lang.org)
[![chat](https://img.shields.io/discord/569610676205781012.svg?logo=discord)](https://discord.com/invite/JXYwgWZ)

Expand All @@ -35,7 +35,7 @@ crossbeam-epoch = "0.9"

Crossbeam Epoch supports stable Rust releases going back at least six months,
and every time the minimum supported Rust version is increased, a new minor
version is released. Currently, the minimum supported Rust version is 1.38.
version is released. Currently, the minimum supported Rust version is 1.59.

## License

Expand Down
2 changes: 1 addition & 1 deletion crossbeam-queue/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ name = "crossbeam-queue"
# - Create "crossbeam-queue-X.Y.Z" git tag
version = "0.3.8"
edition = "2018"
rust-version = "1.38"
rust-version = "1.59"
license = "MIT OR Apache-2.0"
repository = "https://github.com/crossbeam-rs/crossbeam"
homepage = "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-queue"
Expand Down
4 changes: 2 additions & 2 deletions crossbeam-queue/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-queue#license)
https://crates.io/crates/crossbeam-queue)
[![Documentation](https://docs.rs/crossbeam-queue/badge.svg)](
https://docs.rs/crossbeam-queue)
[![Rust 1.38+](https://img.shields.io/badge/rust-1.38+-lightgray.svg)](
[![Rust 1.59+](https://img.shields.io/badge/rust-1.59+-lightgray.svg)](
https://www.rust-lang.org)
[![chat](https://img.shields.io/discord/569610676205781012.svg?logo=discord)](https://discord.com/invite/JXYwgWZ)

Expand Down Expand Up @@ -36,7 +36,7 @@ crossbeam-queue = "0.3"

Crossbeam Queue supports stable Rust releases going back at least six months,
and every time the minimum supported Rust version is increased, a new minor
version is released. Currently, the minimum supported Rust version is 1.38.
version is released. Currently, the minimum supported Rust version is 1.59.

## License

Expand Down
2 changes: 1 addition & 1 deletion crossbeam-skiplist/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ name = "crossbeam-skiplist"
# - Create "crossbeam-skiplist-X.Y.Z" git tag
version = "0.1.1"
edition = "2018"
rust-version = "1.38"
rust-version = "1.59"
license = "MIT OR Apache-2.0"
repository = "https://github.com/crossbeam-rs/crossbeam"
homepage = "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-skiplist"
Expand Down
4 changes: 2 additions & 2 deletions crossbeam-skiplist/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-skiplist#license
https://crates.io/crates/crossbeam-skiplist)
[![Documentation](https://docs.rs/crossbeam-skiplist/badge.svg)](
https://docs.rs/crossbeam-skiplist)
[![Rust 1.38+](https://img.shields.io/badge/rust-1.38+-lightgray.svg)](
[![Rust 1.59+](https://img.shields.io/badge/rust-1.59+-lightgray.svg)](
https://www.rust-lang.org)
[![chat](https://img.shields.io/discord/569610676205781012.svg?logo=discord)](https://discord.com/invite/JXYwgWZ)

Expand All @@ -34,7 +34,7 @@ crossbeam-skiplist = "0.1"

Crossbeam Skiplist supports stable Rust releases going back at least six months,
and every time the minimum supported Rust version is increased, a new minor
version is released. Currently, the minimum supported Rust version is 1.38.
version is released. Currently, the minimum supported Rust version is 1.59.

## License

Expand Down
3 changes: 2 additions & 1 deletion crossbeam-utils/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ name = "crossbeam-utils"
# - Create "crossbeam-utils-X.Y.Z" git tag
version = "0.8.16"
edition = "2018"
rust-version = "1.38"
rust-version = "1.59"
license = "MIT OR Apache-2.0"
repository = "https://github.com/crossbeam-rs/crossbeam"
homepage = "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-utils"
Expand All @@ -22,6 +22,7 @@ default = ["std"]
std = []

[dependencies]
atomic-maybe-uninit = "0.2.22"
cfg-if = "1"

# Enable the use of loom for concurrency testing.
Expand Down
4 changes: 2 additions & 2 deletions crossbeam-utils/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-utils#license)
https://crates.io/crates/crossbeam-utils)
[![Documentation](https://docs.rs/crossbeam-utils/badge.svg)](
https://docs.rs/crossbeam-utils)
[![Rust 1.38+](https://img.shields.io/badge/rust-1.38+-lightgray.svg)](
[![Rust 1.59+](https://img.shields.io/badge/rust-1.59+-lightgray.svg)](
https://www.rust-lang.org)
[![chat](https://img.shields.io/discord/569610676205781012.svg?logo=discord)](https://discord.com/invite/JXYwgWZ)

Expand Down Expand Up @@ -55,7 +55,7 @@ crossbeam-utils = "0.8"

Crossbeam Utils supports stable Rust releases going back at least six months,
and every time the minimum supported Rust version is increased, a new minor
version is released. Currently, the minimum supported Rust version is 1.38.
version is released. Currently, the minimum supported Rust version is 1.59.

## License

Expand Down
3 changes: 3 additions & 0 deletions crossbeam-utils/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,7 @@ fn main() {
if sanitize.contains("thread") {
println!("cargo:rustc-cfg=crossbeam_sanitize_thread");
}
if !sanitize.is_empty() {
println!("cargo:rustc-cfg=crossbeam_atomic_cell_force_fallback");
}
}

0 comments on commit f6c99b8

Please sign in to comment.