Expand description
A global executor built on top of async-executor and async_io
The global executor is lazily spawned on first use. It spawns as many threads
as the number of cpus by default. You can override this using the
ASYNC_GLOBAL_EXECUTOR_THREADS
environment variable.
§Examples
// spawn a task on the multi-threaded executor
let task1 = async_global_executor::spawn(async {
1 + 2
});
// spawn a task on the local executor (same thread)
let task2 = async_global_executor::spawn_local(async {
3 + 4
});
let task = future::zip(task1, task2);
// run the executor
async_global_executor::block_on(async {
assert_eq!(task.await, (3, 7));
});
Structs§
- Global
Executor Config - Configuration to init the thread pool for the multi-threaded global executor.
- Task
- A spawned task.
Functions§
- block_
on - Runs the global and the local executor on the current thread
- init
- Init the global executor, spawning as many threads as the number or cpus or
the value specified by the
ASYNC_GLOBAL_EXECUTOR_THREADS
environment variable if specified. - init_
with_ config - Init the global executor, spawning as many threads as specified or the value specified by the specified environment variable.
- spawn
- Spawns a task onto the multi-threaded global executor.
- spawn_
blocking - Runs blocking code on a thread pool.
- spawn_
local - Spawns a task onto the local executor.
- spawn_
more_ threads - Spawn more executor threads, up to configured max value.
- stop_
current_ thread - Stop the current executor thread, if we exceed the configured min value
- stop_
thread - Stop one of the executor threads, down to configured min value