Struct script::script_runtime::Runtime
source · pub struct Runtime {
rt: Runtime,
pub microtask_queue: Rc<MicrotaskQueue>,
job_queue: *mut JobQueue,
networking_task_src: Option<Box<NetworkingTaskSource>>,
}
Fields§
§rt: Runtime
§microtask_queue: Rc<MicrotaskQueue>
§job_queue: *mut JobQueue
§networking_task_src: Option<Box<NetworkingTaskSource>>
Implementations§
source§impl Runtime
impl Runtime
sourcepub(crate) fn new(
networking_task_source: Option<NetworkingTaskSource>,
) -> Runtime
pub(crate) fn new( networking_task_source: Option<NetworkingTaskSource>, ) -> Runtime
Create a new runtime, optionally with the given NetworkingTaskSource
.
§Safety
If panicking does not abort the program, any threads with child runtimes will continue executing after the thread with the parent runtime panics, but they will be in an invalid and undefined state.
This, like many calls to SpiderMoney API, is unsafe.
sourcepub(crate) unsafe fn new_with_parent(
parent: Option<ParentRuntime>,
networking_task_source: Option<NetworkingTaskSource>,
) -> Runtime
pub(crate) unsafe fn new_with_parent( parent: Option<ParentRuntime>, networking_task_source: Option<NetworkingTaskSource>, ) -> Runtime
Create a new runtime, optionally with the given ParentRuntime
and NetworkingTaskSource
.
§Safety
If panicking does not abort the program, any threads with child runtimes will continue executing after the thread with the parent runtime panics, but they will be in an invalid and undefined state.
The parent
pointer in the ParentRuntime
argument must point to a valid object in memory.
This, like many calls to the SpiderMoney API, is unsafe.
pub(crate) fn thread_safe_js_context(&self) -> ThreadSafeJSContext
Methods from Deref<Target = RustRuntime>§
sourcepub fn thread_safe_js_context(&self) -> ThreadSafeJSContext
pub fn thread_safe_js_context(&self) -> ThreadSafeJSContext
Create a ThreadSafeJSContext
that can detect when this Runtime
is destroyed.
sourcepub fn prepare_for_new_child(&self) -> ParentRuntime
pub fn prepare_for_new_child(&self) -> ParentRuntime
Signal that a new child runtime will be created in the future, and ensure
that this runtime will not allow itself to be destroyed before the new
child runtime. Returns a handle that can be passed to create_with_parent
in order to create a new runtime on another thread that is associated with
this runtime.
pub fn evaluate_script( &self, glob: Handle<'_, *mut JSObject>, script: &str, filename: &str, line_num: u32, rval: MutableHandle<'_, Value>, ) -> Result<(), ()>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Runtime
impl !RefUnwindSafe for Runtime
impl !Send for Runtime
impl !Sync for Runtime
impl Unpin for Runtime
impl !UnwindSafe for Runtime
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
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>
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>
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>
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 more