Skip to main content

RuntimeOwner

Struct RuntimeOwner 

Source
pub struct RuntimeOwner { /* private fields */ }
Expand description

Owns one Tokio runtime and its root service context.

Dropping this value without an explicit shutdown starts Tokio background shutdown and logs any still-tracked work.

Implementations§

Source§

impl RuntimeOwner

Source

pub fn plan( config: RuntimeConfig, ) -> Result<RuntimeOwnerPlan, RuntimeContractViolation>

Validates runtime configuration before runtime construction.

§Errors

Returns a deterministic contract violation without discovering system resources or starting a Tokio runtime.

Source

pub fn new() -> RuntimeResult<Self>

Builds an owner from the internally validated default profile.

§Errors

Returns an operational error when process-memory discovery or runtime construction fails. Use Self::plan when the caller supplies any runtime configuration or memory-limit value.

Source

pub fn root_context(&self) -> &RootServiceContext

Returns the root context used to derive owned component scopes.

Source

pub fn config(&self) -> &RuntimeConfig

Returns the validated runtime configuration.

Source

pub fn resources(&self) -> &RuntimeResources

Returns the process-wide resource capabilities.

Source

pub fn block_on<F>(&self, future: F) -> F::Output
where F: Future,

Blocks the current thread until future completes.

A future above the runtime’s inline boundary is polled from the heap, so a process entrypoint does not need to box its root future.

Source

pub async fn shutdown_tasks(&self) -> ShutdownReport

Cancels and awaits tracked tasks until the configured deadline.

Source

pub fn shutdown_runtime_blocking(self) -> RuntimeResult<ShutdownReport>

Blocks while shutting down tracked work and the Tokio runtime.

§Errors

Returns an error when invoked from inside a Tokio runtime.

Source

pub fn shutdown_background(self) -> ShutdownReport

Cancels tracked work and asks Tokio to finish runtime shutdown in the background.

The returned report captures only the immediate task-group shutdown state; background Tokio work is not awaited by this method.

Source

pub fn shutdown_runtime_blocking_with_timeout( self, timeout: Duration, ) -> RuntimeResult<ShutdownReport>

Blocks while shutting down tracked work within timeout.

§Errors

Returns an error when invoked from inside a Tokio runtime.

Source

pub fn shutdown_runtime_blocking_until( self, deadline: ShutdownDeadline, ) -> RuntimeResult<ShutdownReport>

Shuts down tracked work and the Tokio runtime using an existing absolute deadline.

This is the process-entrypoint boundary for a deadline already frozen by crate::ServiceLifecycle. It never grants a new timeout to the runtime layer.

§Errors

Returns an unsupported-operation runtime failure when called from an asynchronous Tokio context.

Source§

impl RuntimeOwner

Source

pub async fn shutdown_tasks_until( &self, deadline: ShutdownDeadline, ) -> ShutdownReport

Cancels and joins all owned tasks using an existing absolute deadline.

This keeps nested lifecycle owners on the caller’s single shutdown budget without consuming or destroying the owned Tokio runtime.

Trait Implementations§

Source§

impl Drop for RuntimeOwner

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more