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§
Sourcetype FailureAgreementOutput
type FailureAgreementOutput
Backend-owned result whose host boolean becomes authoritative only after exact communication completion.
Required Methods§
Sourcefn agree_success(
local_success: bool,
group: &Self::CommunicationGroup,
executor: &Self::Executor,
) -> Result<Submission<Self::FailureAgreementOutput, Self::CommunicationCompletion>, Self::CommunicationError>
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.
Sourcefn resolve_failure_agreement(
output: Self::FailureAgreementOutput,
) -> Result<bool, Self::CommunicationError>
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".