Struct script::script_runtime::ContextForRequestInterrupt
source · pub struct ContextForRequestInterrupt(Arc<Mutex<Option<*mut JSContext>>>);
Expand description
A wrapper around a JSContext that is Send, enabling an interrupt to be requested from a thread other than the one running JS using that context.
Tuple Fields§
§0: Arc<Mutex<Option<*mut JSContext>>>
Implementations§
source§impl ContextForRequestInterrupt
impl ContextForRequestInterrupt
pub fn new(context: *mut RawJSContext) -> ContextForRequestInterrupt
pub fn revoke(&self)
sourcepub fn request_interrupt(&self)
pub fn request_interrupt(&self)
Can be called from any thread, to request the callback set by JS_AddInterruptCallback to be called on the thread where that context is running. The lock is held when calling JS_RequestInterruptCallback because it is possible for the JSContext to be destroyed on the other thread in the case of Worker shutdown
Trait Implementations§
source§impl Clone for ContextForRequestInterrupt
impl Clone for ContextForRequestInterrupt
source§fn clone(&self) -> ContextForRequestInterrupt
fn clone(&self) -> ContextForRequestInterrupt
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreimpl Send for ContextForRequestInterrupt
It is safe to call JS_RequestInterruptCallback(cx)
from any thread.
See the docs for the corresponding requestInterrupt
method,
at mozjs/js/src/vm/JSContext.h
.
Auto Trait Implementations§
impl RefUnwindSafe for ContextForRequestInterrupt
impl !Sync for ContextForRequestInterrupt
impl Unpin for ContextForRequestInterrupt
impl UnwindSafe for ContextForRequestInterrupt
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where
F: FnOnce(&Self) -> bool,
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where F: FnOnce(&Self) -> bool,
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<T> MaybeBoxed<Box<T, Global>> for T
impl<T> MaybeBoxed<Box<T, Global>> for T
source§fn maybe_boxed(self) -> Box<T, Global>
fn maybe_boxed(self) -> Box<T, Global>
Convert
source§impl<T> MaybeBoxed<T> for T
impl<T> MaybeBoxed<T> for T
source§fn maybe_boxed(self) -> T
fn maybe_boxed(self) -> T
Convert