Crates.io | uexec |
lib.rs | uexec |
version | 0.1.4 |
source | src |
created_at | 2021-04-22 20:52:40.879929 |
updated_at | 2021-05-08 20:46:02.982317 |
description | Simple work-stealing global and local executor |
homepage | https://github.com/Keruspe/uexec |
repository | https://github.com/Keruspe/uexec |
max_upload_size | |
id | 388298 |
size | 54,428 |
Simple work-stealing global and local executor
use futures_lite::future;
// spawn several worker threads
uexec::spawn_workers(4);
// spawn a task on the multi-threaded executor
let task1 = uexec::spawn(async {
1 + 2
});
// spawn a task on the local executor (same thread)
let task2 = uexec::spawn_local(async {
3 + 4
});
let task = future::zip(task1, task2);
// run the executor
uexec::block_on(async {
assert_eq!(task.await, (3, 7));
});
// terminate our worker threads
uexec::terminate_workers();
Licensed under either of
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.