wasmmainexecutor

Run futures on the main browser thread

Crates.io Docs.rs

Certain tasks, like creating an AudioContext or RtcPeerConnection, can only be performed on the main browser thread. wasm_main_executor provides an easy way to send futures to the main browser thread from any context. This allows web workers to spawn main-threaded tasks and await their completion, and facilitates the implementation of cross-thread polyfills/shims.

Usage

The following is a simple example of executor usage:

```rust async fn test_future() -> i32 { // Do some async or main-threaded work... 2 }

// Start the executor. This must be called from the main browser thread. wasmmainexecutor::initialize().unwrap();

// Futures may be spawned on background threads using the executor. // The future runs on the main thread. let fut = wasmmainexecutor::spawn(test_future());

// A future is returned which may be awaited on the background thread. asserteq!(2, futures::executor::blockon(fut)); ```