pub struct ProcSupervisionCoordinator(/* private fields */);
Expand description
Used to create a proc supervison coordinator for testing purposes. Normally you should not use this struct. It is only required in the following cases:
- The tests’ logic involves actor failures;
- A supervison coordinator is not already set for the proc (e.g. the ProcActor scenario which will be explained later.)
This is because hyperactor’s supervision logic requires actor failures in a proc to be bubbled up to through the supervision chain:
grandchild actor -> child actor -> root actor -> proc supervison coordinator
If the the proc supervison coordinator is not set, supervision will crash the process because it cannot find the coordinator during the “bubbling up”.
Note that if you are using hyperactor_multiprocess’ ProcActor bootstrap,
the ProcActor
will be set as the coordinator by the bootstrap. As a
result, you do not need to set the supervior again with this struct.
Implementations§
Trait Implementations§
Source§impl Actor for ProcSupervisionCoordinator
impl Actor for ProcSupervisionCoordinator
Source§type Params = ReportedEvent
type Params = ReportedEvent
The type of initialization parameters accepted by this actor.
Source§fn new<'async_trait>(
param: ReportedEvent,
) -> Pin<Box<dyn Future<Output = Result<Self, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
fn new<'async_trait>(
param: ReportedEvent,
) -> Pin<Box<dyn Future<Output = Result<Self, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
Creates a new actor instance given its instantiation parameters.
Source§fn init<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_this: &'life1 Instance<Self>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn init<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_this: &'life1 Instance<Self>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Initialize the actor, after the runtime has been fully initialized.
Init thus provides a mechanism by which an actor can reliably and always
receive some initial event that can be used to kick off further
(potentially delayed) processing.
Source§fn spawn<'life0, 'async_trait>(
cap: &'life0 (impl 'async_trait + CanSpawn),
params: Self::Params,
) -> Pin<Box<dyn Future<Output = Result<ActorHandle<Self>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn spawn<'life0, 'async_trait>(
cap: &'life0 (impl 'async_trait + CanSpawn),
params: Self::Params,
) -> Pin<Box<dyn Future<Output = Result<ActorHandle<Self>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Spawn a child actor, given a spawning capability (usually given by
Instance
).
The spawned actor will be supervised by the parent (spawning) actor.Source§fn spawn_detached<'async_trait>(
params: Self::Params,
) -> Pin<Box<dyn Future<Output = Result<ActorHandle<Self>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
fn spawn_detached<'async_trait>(
params: Self::Params,
) -> Pin<Box<dyn Future<Output = Result<ActorHandle<Self>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
Spawns this actor in a detached state, handling its messages
in a background task. The returned handle is used to control
the actor’s lifecycle and to interact with it. Read more
Source§fn spawn_server_task<F>(future: F) -> JoinHandle<F::Output>
fn spawn_server_task<F>(future: F) -> JoinHandle<F::Output>
This method is used by the runtime to spawn the actor server. It can be
used by actors that require customized runtime setups
(e.g., dedicated actor threads), or want to use a custom tokio runtime.
Source§fn handle_supervision_event<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
_this: &'life1 Instance<Self>,
_event: &'life2 ActorSupervisionEvent,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn handle_supervision_event<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
_this: &'life1 Instance<Self>,
_event: &'life2 ActorSupervisionEvent,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Handle actor supervision event. Return `Ok(true)`` if the event is handled here.
Source§fn handle_undeliverable_message<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Instance<Self>,
__arg2: Undeliverable<MessageEnvelope>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle_undeliverable_message<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Instance<Self>,
__arg2: Undeliverable<MessageEnvelope>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Default undeliverable message handling behavior.
Source§impl Debug for ProcSupervisionCoordinator
impl Debug for ProcSupervisionCoordinator
Auto Trait Implementations§
impl Freeze for ProcSupervisionCoordinator
impl RefUnwindSafe for ProcSupervisionCoordinator
impl Send for ProcSupervisionCoordinator
impl Sync for ProcSupervisionCoordinator
impl Unpin for ProcSupervisionCoordinator
impl UnwindSafe for ProcSupervisionCoordinator
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
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<A, M> Handler<IndexedErasedUnbound<M>> for A
impl<A, M> Handler<IndexedErasedUnbound<M>> for A
Source§impl<A> Handler<Undeliverable<MessageEnvelope>> for Awhere
A: Actor,
impl<A> Handler<Undeliverable<MessageEnvelope>> for Awhere
A: Actor,
Source§fn handle<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, A>,
message: Undeliverable<MessageEnvelope>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
A: 'async_trait,
fn handle<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, A>,
message: Undeliverable<MessageEnvelope>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
A: 'async_trait,
Handle the next M-typed message.
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more