pub trait ThreadInternal: Sizedwhere
    Self: Borrow<Thread>,
{ fn context(&self) -> OwnedContext<'_>; fn root_value<'vm, T>(&'vm self, value: Variants<'_>) -> RootedValue<T>
    where
        T: VmRoot<'vm>
; fn call_thunk<'vm>(
        &'vm self,
        closure: GcPtr<ClosureData>
    ) -> FutureValue<Execute<RootedThread>>; fn execute_io<'vm>(
        &'vm self,
        value: Variants<'_>
    ) -> FutureValue<Execute<RootedThread>>; fn call_function<'b>(
        &'b self,
        stack: OwnedContext<'b>,
        args: VmIndex
    ) -> Result<Async<Option<OwnedContext<'b>>>>; fn resume(&self) -> Result<Async<OwnedContext<'_>>>; fn set_global(
        &self,
        name: Symbol,
        typ: ArcType,
        metadata: Metadata,
        value: Value
    ) -> Result<()>; fn deep_clone_value(
        &self,
        owner: &Thread,
        value: Variants<'_>
    ) -> Result<Value>; fn can_share_values_with(&self, gc: &mut Gc, other: &Thread) -> bool; fn call_thunk_top<'vm>(
        &'vm self,
        closure: GcPtr<ClosureData>
    ) -> BoxFuture<'static, RootedValue<RootedThread>, Error>
    where
        Self: Send + Sync
, { ... } fn execute_io_top<'vm>(
        &'vm self,
        value: Variants<'_>
    ) -> BoxFuture<'static, RootedValue<RootedThread>, Error>
    where
        Self: Send + Sync
, { ... } }
Expand description

Internal functions for interacting with threads. These functions should be considered both unsafe and unstable.

Required Methods

Locks and retrives this threads stack

Roots a value

Evaluates a zero argument function (a thunk)

Executes an IO action

Calls a function on the stack. When this function is called it is expected that the function exists at stack.len() - args - 1 and that the arguments are of the correct type

owner is theread that owns value which is not necessarily the same as self

Provided Methods

Implementors