This is a safe Rust async executor.
It is part of safina
, a safe async runtime.
forbid(unsafe_code)
std
nightly
, for
OnceCell
and
Wake traithttps://docs.rs/safina-executor
rust
safina_executor::increase_threads_to(1);
let (sender, receiver) = std::sync::mpsc::channel();
safina_executor::spawn(async move {
sender.send(()).unwrap();
});
receiver.recv().unwrap();
rust
std::thread::spawn(safina_executor::work);
let result = safina_executor::block_on(async {
prepare_request().await?;
execute_request().await
})?;
unsafe
codeunsafe
codeunsafe
spawn
and block_on
without
using Box::pin
.
Add spawn_unpin
and block_on_unpin
for folks who need to avoid allocating.
so callers don't have to.safina
spawn
block_on
increase_threads_to
stop_threads
, allow_threads
, and increase_threads_to
.once_cell
and unsafe RawWaker
and builds with Rust stable
.Cargo.toml
and bump version number../release.sh
License: Apache-2.0