Type Alias mozjs::jsapi::DispatchToEventLoopCallback
source · pub type DispatchToEventLoopCallback = Option<unsafe extern "C" fn(_: *mut c_void, _: *mut Dispatchable) -> bool>;
Expand description
Callback to dispatch a JS::Dispatchable to a JSContext’s thread’s event loop.
The DispatchToEventLoopCallback set on a particular JSContext must accept
JS::Dispatchable instances and arrange for their run
methods to be called
eventually on the JSContext’s thread. This is used for cross-thread dispatch,
so the callback itself must be safe to call from any thread.
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.
To establish a DispatchToEventLoopCallback, the embedding may either call InitDispatchToEventLoop to provide its own, or call js::UseInternalJobQueues to select a default implementation built into SpiderMonkey. This latter depends on the embedding to call js::RunJobs on the JavaScript thread to process queued Dispatchables at appropriate times.
Aliased Type§
enum DispatchToEventLoopCallback {
None,
Some(unsafe extern "C" fn(_: *mut c_void, _: *mut Dispatchable) -> bool),
}
Variants§
None
No value.
Some(unsafe extern "C" fn(_: *mut c_void, _: *mut Dispatchable) -> bool)
Some value of type T
.
Trait Implementations§
source§impl<T: CustomTrace> CustomTrace for Option<T>
impl<T: CustomTrace> CustomTrace for Option<T>
source§impl<T: FromJSValConvertible> FromJSValConvertible for Option<T>
impl<T: FromJSValConvertible> FromJSValConvertible for Option<T>
§type Config = <T as FromJSValConvertible>::Config
type Config = <T as FromJSValConvertible>::Config
source§unsafe fn from_jsval(
cx: *mut JSContext,
value: HandleValue<'_>,
option: T::Config
) -> Result<ConversionResult<Option<T>>, ()>
unsafe fn from_jsval( cx: *mut JSContext, value: HandleValue<'_>, option: T::Config ) -> Result<ConversionResult<Option<T>>, ()>
val
to type Self
.
Optional configuration of type T
can be passed as the option
argument.
If it returns Err(())
, a JSAPI exception is pending.
If it returns Ok(Failure(reason))
, there is no pending JSAPI exception.