forked from al8n/crossbeam
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Stjepan Glavina
committed
Nov 5, 2018
1 parent
ac2f9a6
commit d9b1e34
Showing
109 changed files
with
28,622 additions
and
385 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,4 @@ | ||
/target/ | ||
/crossbeam-channel/benchmarks/*.txt | ||
/crossbeam-channel/benchmarks/*.png | ||
target/ | ||
Cargo.lock |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,19 @@ | ||
language: rust | ||
|
||
addons: | ||
apt: | ||
sources: | ||
- ubuntu-toolchain-r-test | ||
- llvm-toolchain-precise | ||
- llvm-toolchain-precise-3.8 | ||
|
||
rust: | ||
- 1.25.0 | ||
- 1.26.0 | ||
- stable | ||
- beta | ||
- nightly | ||
- 1.26.0 | ||
|
||
install: | ||
- cargo install cargo-tree | ||
|
||
script: | ||
# TODO(stjepang): Uncomment the following line once we fix the dependency tree | ||
# - (cargo tree --duplicate | grep ^crossbeam) && exit 1 | ||
- ./ci/script.sh | ||
- (cd crossbeam-utils && ./ci/script.sh) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,27 @@ | ||
#!/bin/bash | ||
|
||
check_min_version() { | ||
local rustc="`rustc -V | cut -d' ' -f2 | cut -d- -f1`" | ||
if [[ "$rustc" != "`echo -e "$rustc\n$1" | sort -V | tail -n1`" ]]; then | ||
echo "Unsupported Rust version: $1 < $rustc" | ||
exit 0 | ||
fi | ||
} | ||
check_min_version 1.26.0 | ||
|
||
set -ex | ||
|
||
cargo build | ||
export RUSTFLAGS="-D warnings" | ||
|
||
cargo build --no-default-features | ||
cargo test | ||
|
||
if [[ $TRAVIS_RUST_VERSION == nightly ]]; then | ||
if [[ "$TRAVIS_RUST_VERSION" == "nightly" ]]; then | ||
cargo test --features nightly | ||
fi | ||
|
||
# TODO(stjepang): Uncomment the following lines once we fix the dependency tree | ||
# if [[ "$TRAVIS_RUST_VERSION" == "nightly" ]]; then | ||
# cargo install cargo-tree | ||
# (cargo tree --duplicate | grep "^crossbeam") && exit 1 | ||
# fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
# Version 0.3.0 | ||
|
||
- Add a special `never` channel type. | ||
- Dropping all receivers now closes the channel. | ||
- The interface of sending and receiving methods is now very similar to those in v0.1. | ||
- The syntax for `send` in `select!` is now `send(sender, msg) -> res => body`. | ||
- The syntax for `recv` in `select!` is now `recv(receiver) -> res => body`. | ||
- New, more efficient interface for `Select` without callbacks. | ||
- Timeouts can be specified in `select!`. | ||
|
||
# Version 0.2.6 | ||
|
||
- `Select` struct that can add cases dynamically. | ||
- More documentation (in particular, the FAQ section). | ||
- Optimize contended sends/receives in unbounded channels. | ||
|
||
# Version 0.2.5 | ||
|
||
- Use `LocalKey::try_with` instead of `LocalKey::with`. | ||
- Remove helper macros `__crossbeam_channel*`. | ||
|
||
# Version 0.2.4 | ||
|
||
- Make `select!` linearizable with other channel operations. | ||
- Update `crossbeam-utils` to `0.5.0`. | ||
- Update `parking_lot` to `0.6.3`. | ||
- Remove Mac OS X tests. | ||
|
||
# Version 0.2.3 | ||
|
||
- Add Mac OS X tests. | ||
- Lower some memory orderings. | ||
- Eliminate calls to `mem::unitialized`, which caused bugs with ZST. | ||
|
||
# Version 0.2.2 | ||
|
||
- Add more tests. | ||
- Update `crossbeam-epoch` to 0.5.0 | ||
- Initialize the RNG seed to a random value. | ||
- Replace `libc::abort` with `std::process::abort`. | ||
- Ignore clippy warnings in `select!`. | ||
- Better interaction of `select!` with the NLL borrow checker. | ||
|
||
# Version 0.2.1 | ||
|
||
- Fix compilation errors when using `select!` with `#[deny(unsafe_code)]`. | ||
|
||
# Version 0.2.0 | ||
|
||
- Implement `IntoIterator<Item = T>` for `Receiver<T>`. | ||
- Add a new `select!` macro. | ||
- Add special channels `after` and `tick`. | ||
- Dropping receivers doesn't close the channel anymore. | ||
- Change the signature of `recv`, `send`, and `try_recv`. | ||
- Remove `Sender::is_closed` and `Receiver::is_closed`. | ||
- Remove `Sender::close` and `Receiver::close`. | ||
- Remove `Sender::send_timeout` and `Receiver::recv_timeout`. | ||
- Remove `Sender::try_send`. | ||
- Remove `Select` and `select_loop!`. | ||
- Remove all error types. | ||
- Remove `Iter`, `TryIter`, and `IntoIter`. | ||
- Remove the `nightly` feature. | ||
- Remove ordering operators for `Sender` and `Receiver`. | ||
|
||
# Version 0.1.3 | ||
|
||
- Add `Sender::disconnect` and `Receiver::disconnect`. | ||
- Implement comparison operators for `Sender` and `Receiver`. | ||
- Allow arbitrary patterns in place of `msg` in `recv(r, msg)`. | ||
- Add a few conversion impls between error types. | ||
- Add benchmarks for `atomicring` and `mpmc`. | ||
- Add benchmarks for different message sizes. | ||
- Documentation improvements. | ||
- Update `crossbeam-epoch` to 0.4.0 | ||
- Update `crossbeam-utils` to 0.3.0 | ||
- Update `parking_lot` to 0.5 | ||
- Update `rand` to 0.4 | ||
|
||
# Version 0.1.2 | ||
|
||
- Allow conditional cases in `select_loop!` macro. | ||
- Fix typos in documentation. | ||
- Fix deadlock in selection when all channels are disconnected and a timeout is specified. | ||
|
||
# Version 0.1.1 | ||
|
||
- Implement `Debug` for `Sender`, `Receiver`, `Iter`, `TryIter`, `IntoIter`, and `Select`. | ||
- Implement `Default` for `Select`. | ||
|
||
# Version 0.1.0 | ||
|
||
- First implementation of the channels. | ||
- Add `select_loop!` macro by @TimNN. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
[package] | ||
name = "crossbeam-channel" | ||
# When publishing a new version: | ||
# - Update CHANGELOG.md | ||
# - Update README.md | ||
# - Create "crossbeam-channel-X.Y.Z" git tag | ||
version = "0.3.0" | ||
authors = ["The Crossbeam Project Developers"] | ||
license = "MIT/Apache-2.0" | ||
readme = "README.md" | ||
repository = "https://github.com/crossbeam-rs/crossbeam-channel" | ||
homepage = "https://github.com/crossbeam-rs/crossbeam-channel" | ||
documentation = "https://docs.rs/crossbeam-channel" | ||
description = "Multi-producer multi-consumer channels for message passing" | ||
keywords = ["channel", "mpmc", "select", "golang", "message"] | ||
categories = ["algorithms", "concurrency", "data-structures"] | ||
|
||
[dependencies] | ||
crossbeam-epoch = "0.6.0" | ||
crossbeam-utils = "0.5.0" | ||
parking_lot = "0.6.3" | ||
rand = "0.5.3" | ||
smallvec = "0.6.2" | ||
|
||
[dev-dependencies] | ||
crossbeam = "0.3.0" | ||
signal-hook = "0.1.5" |
Oops, something went wrong.