Struct script::script_runtime::ThreadSafeJSContext
source · pub struct ThreadSafeJSContext(Arc<RwLock<Option<*mut JSContext>>>);
Expand description
A version of the JSContext
that can be used from other threads and is thus
Send
and Sync
. This should only ever expose operations that are marked as
thread-safe by the SpiderMonkey API, ie ones that only atomic fields in JSContext.
Tuple Fields§
§0: Arc<RwLock<Option<*mut JSContext>>>
Implementations§
source§impl ThreadSafeJSContext
impl ThreadSafeJSContext
sourcepub fn request_interrupt_callback(&self)
pub fn request_interrupt_callback(&self)
Call JS_RequestInterruptCallback
from the SpiderMonkey API.
This is thread-safe according to
https://searchfox.org/mozilla-central/rev/7a85a111b5f42cdc07f438e36f9597c4c6dc1d48/js/public/Interrupt.h#19
sourcepub fn request_interrupt_callback_can_wait(&self)
pub fn request_interrupt_callback_can_wait(&self)
Call JS_RequestInterruptCallbackCanWait
from the SpiderMonkey API.
This is thread-safe according to
https://searchfox.org/mozilla-central/rev/7a85a111b5f42cdc07f438e36f9597c4c6dc1d48/js/public/Interrupt.h#19
Trait Implementations§
source§impl Clone for ThreadSafeJSContext
impl Clone for ThreadSafeJSContext
source§fn clone(&self) -> ThreadSafeJSContext
fn clone(&self) -> ThreadSafeJSContext
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 ThreadSafeJSContext
impl Sync for ThreadSafeJSContext
Auto Trait Implementations§
impl Freeze for ThreadSafeJSContext
impl RefUnwindSafe for ThreadSafeJSContext
impl Unpin for ThreadSafeJSContext
impl UnwindSafe for ThreadSafeJSContext
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> Filterable for T
impl<T> Filterable for T
source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
Creates a filterable data provider with the given name for debugging. 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>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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>> for T
impl<T> MaybeBoxed<Box<T>> for T
source§fn maybe_boxed(self) -> Box<T>
fn maybe_boxed(self) -> Box<T>
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