#async #await #future #executor

uexec

Simple work-stealing global and local executor

6 releases

0.1.4 May 8, 2021
0.1.3 May 6, 2021
0.0.0 Apr 22, 2021

#526 in Asynchronous

33 downloads per month

Apache-2.0 OR MIT

24KB
570 lines

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.

Dependencies

~1MB
~14K SLoC