Skip to main content

FailureAgreementBackend

Trait FailureAgreementBackend 

Source
pub trait FailureAgreementBackend: CommunicationBackend {
    type FailureAgreementOutput;

    // Required methods
    fn agree_success(
        local_success: bool,
        group: &Self::CommunicationGroup,
        executor: &Self::Executor,
    ) -> Result<Submission<Self::FailureAgreementOutput, Self::CommunicationCompletion>, Self::CommunicationError>;
    fn resolve_failure_agreement(
        output: Self::FailureAgreementOutput,
    ) -> Result<bool, Self::CommunicationError>;
}
Expand description

All-rank success-status agreement on an opaque communication group.

Unlike a barrier, this operation carries one boolean status from every member and returns true only when every submitted status was true.

Required Associated Types§

Source

type FailureAgreementOutput

Backend-owned result whose host boolean becomes authoritative only after exact communication completion.

Required Methods§

Source

fn agree_success( local_success: bool, group: &Self::CommunicationGroup, executor: &Self::Executor, ) -> Result<Submission<Self::FailureAgreementOutput, Self::CommunicationCompletion>, Self::CommunicationError>

Submits one local phase status without reading the lazy result eagerly.

Source

fn resolve_failure_agreement( output: Self::FailureAgreementOutput, ) -> Result<bool, Self::CommunicationError>

Resolves the completed backend result without starting new native work.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§