uexec

Crates.iouexec
lib.rsuexec
version0.1.4
sourcesrc
created_at2021-04-22 20:52:40.879929
updated_at2021-05-08 20:46:02.982317
descriptionSimple work-stealing global and local executor
homepagehttps://github.com/Keruspe/uexec
repositoryhttps://github.com/Keruspe/uexec
max_upload_size
id388298
size54,428
Marc-Antoine Perennou (Keruspe)

documentation

https://docs.rs/uexec

README

uexec

API Docs Build status Downloads

Simple work-stealing global and local executor

Features

  • no optional feature yet

Examples

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();

License

Licensed under either of

at your option.

Contribution

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.

Commit count: 69

cargo fmt