summaryrefslogtreecommitdiffstats
path: root/third_party/rust/tokio-threadpool/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/tokio-threadpool/README.md')
-rw-r--r--third_party/rust/tokio-threadpool/README.md56
1 files changed, 56 insertions, 0 deletions
diff --git a/third_party/rust/tokio-threadpool/README.md b/third_party/rust/tokio-threadpool/README.md
new file mode 100644
index 0000000000..2a98585a89
--- /dev/null
+++ b/third_party/rust/tokio-threadpool/README.md
@@ -0,0 +1,56 @@
+# Tokio Thread Pool
+
+A library for scheduling execution of futures concurrently across a pool of
+threads.
+
+[Documentation](https://docs.rs/tokio-threadpool/0.1.17/tokio_threadpool)
+
+### Why not Rayon?
+
+Rayon is designed to handle parallelizing single computations by breaking them
+into smaller chunks. The scheduling for each individual chunk doesn't matter as
+long as the root computation completes in a timely fashion. In other words,
+Rayon does not provide any guarantees of fairness with regards to how each task
+gets scheduled.
+
+On the other hand, `tokio-threadpool` is a general purpose scheduler and
+attempts to schedule each task fairly. This is the ideal behavior when
+scheduling a set of unrelated tasks.
+
+### Why not futures-cpupool?
+
+It's 10x slower.
+
+## Examples
+
+```rust
+extern crate tokio_threadpool;
+extern crate futures;
+
+use tokio_threadpool::ThreadPool;
+use futures::{Future, lazy};
+use futures::sync::oneshot;
+
+pub fn main() {
+ let pool = ThreadPool::new();
+ let (tx, rx) = oneshot::channel();
+
+ pool.spawn(lazy(|| {
+ println!("Running on the pool");
+ tx.send("complete").map_err(|e| println!("send error, {}", e))
+ }));
+
+ println!("Result: {:?}", rx.wait());
+ pool.shutdown().wait().unwrap();
+}
+```
+
+## License
+
+This project is licensed under the [MIT license](LICENSE).
+
+### Contribution
+
+Unless you explicitly state otherwise, any contribution intentionally submitted
+for inclusion in Tokio by you, shall be licensed as MIT, without any additional
+terms or conditions.