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§

§1.0.0

None

No value.

§1.0.0

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>

source§

impl<T: FromJSValConvertible> FromJSValConvertible for Option<T>

§

type Config = <T as FromJSValConvertible>::Config

Optional configurable behaviour switch; use () for no configuration.
source§

unsafe fn from_jsval( cx: *mut JSContext, value: HandleValue<'_>, option: T::Config ) -> Result<ConversionResult<Option<T>>, ()>

Convert 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.
source§

impl<T: ToJSValConvertible> ToJSValConvertible for Option<T>

source§

unsafe fn to_jsval(&self, cx: *mut JSContext, rval: MutableHandleValue<'_>)

Convert self to a JSVal. JSAPI failure causes a panic.
source§

impl<T: Traceable> Traceable for Option<T>

source§

unsafe fn trace(&self, trc: *mut JSTracer)

Trace self.