4154ad2190
* Fix a bug where TLS would become None The bug is invoked as follows: - Runner 1 is created and stores the current version of the TLS LOCAL_QUEUE variable, which is None. - Runner 2 is also created. It stores the current version of the TLS variable as well, which is Runner 1's queue. - Runner 1 is dropped. It stores None into the LOCAL_QUEUE variable. - Runner 2 tries to run. It reads from the LOCAL_QUEUE variable, sees that it is None, and panics. This could be solved by just not using the local queue if the variable is None. However, we can do one better; if the slot is open, we can optimize the runner by replacing it with our own queue. This should allow for the local queue to be used more often. Closes #54 Signed-off-by: John Nunley <dev@notgull.net> |
||
---|---|---|
.github | ||
benches | ||
examples | ||
src | ||
tests | ||
.gitignore | ||
CHANGELOG.md | ||
Cargo.toml | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md |
README.md
async-executor
Async executors.
Examples
use async_executor::Executor;
use futures_lite::future;
// Create a new executor.
let ex = Executor::new();
// Spawn a task.
let task = ex.spawn(async {
println!("Hello world");
});
// Run the executor until the task completes.
future::block_on(ex.run(task));
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
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.