pub type DelayedDispatchToEventLoopCallback = Option<unsafe extern "C" fn(*mut c_void, *mut u8, u32) -> bool>;Expand description
Callback to dispatch a JS::Dispatchable to a JSContext’s thread’s event loop with a delay.
The DelayedDispatchToEventLoopCallback set on a particular JSContext must
accept JS::Dispatchable instances and arrange for their run methods to be
called after the given delay on the JSContext’s thread. This is used for
cross-thread dispatch, so the callback itself must be safe to call from any
thread. It cannot trigger a GC.
The embeddings must have its own timeout manager to handle the delay. If a timeout manager is not available for given context, it should return false, optionally with a warning message printed.
The callback accepts a closure that is the same as the one given by the call to JS::InitAsyncTaskCallbacks.
If the callback returns true, it must eventually run the given
Dispatchable; otherwise, SpiderMonkey may leak memory or hang.
The callback may return false to indicate that the JSContext’s thread is
shutting down and is no longer accepting runnables. Shutting down is a
one-way transition: once the callback has rejected a runnable, it must reject
all subsequently submitted runnables as well.
Aliased Type§
pub enum DelayedDispatchToEventLoopCallback {
None,
Some(unsafe extern "C" fn(*mut c_void, *mut u8, u32) -> bool),
}