diff options
author | Carl Lerche <me@carllerche.com> | 2019-01-22 11:37:26 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-22 11:37:26 -0800 |
commit | 13083153aad0750bfee5772d633c725b70f5d243 (patch) | |
tree | e16419be74a39cf60efc7b235db6991e81ccd6cf /Cargo.toml | |
parent | 91f20e33a41108be2b42a8593c70cbff68a23bd6 (diff) |
Introduce tokio-sync crate containing synchronization primitives. (#839)
Introduce a tokio-sync crate containing useful synchronization primitives for programs
written using Tokio.
The initial release contains:
* An mpsc channel
* A oneshot channel
* A semaphore implementation
* An `AtomicTask` primitive.
The `oneshot` and `mpsc` channels are new implementations providing improved
performance characteristics. In some benchmarks, the new mpsc channel shows
up to 7x improvement over the version provided by the `futures` crate. Unfortunately,
the `oneshot` implementation only provides a slight performance improvement as it
is mostly limited by the `futures` 0.1 task system. Once updated to the `std` version
of `Future` (currently nightly only), much greater performance improvements should
be achievable by `oneshot`.
Additionally, he implementations provided here are checked using
[Loom](http://github.com/carllerche/loom/), which provides greater confidence of
correctness.
Diffstat (limited to 'Cargo.toml')
-rw-r--r-- | Cargo.toml | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -26,7 +26,6 @@ members = [ "./", "tokio-async-await", "tokio-buf", - "tokio-channel", "tokio-codec", "tokio-current-thread", "tokio-executor", @@ -34,6 +33,7 @@ members = [ "tokio-io", "tokio-reactor", "tokio-signal", + "tokio-sync", "tokio-threadpool", "tokio-timer", "tokio-tcp", @@ -49,6 +49,7 @@ default = [ "io", "reactor", "rt-full", + "sync", "tcp", "timer", "udp", @@ -67,6 +68,7 @@ rt-full = [ "tokio-executor", "tokio-threadpool", ] +sync = ["tokio-sync"] tcp = ["tokio-tcp"] timer = ["tokio-timer"] udp = ["tokio-udp"] @@ -95,6 +97,7 @@ tokio-fs = { version = "0.1.3", path = "tokio-fs", optional = true } tokio-io = { version = "0.1.6", path = "tokio-io", optional = true } tokio-executor = { version = "0.1.5", path = "tokio-executor", optional = true } tokio-reactor = { version = "0.1.1", path = "tokio-reactor", optional = true } +tokio-sync = { version = "0.1.0", path = "tokio-sync", optional = true } tokio-threadpool = { version = "0.1.8", path = "tokio-threadpool", optional = true } tokio-tcp = { version = "0.1.0", path = "tokio-tcp", optional = true } tokio-udp = { version = "0.1.0", path = "tokio-udp", optional = true } |