Struct EventState
pub struct EventState {
pub signaled: bool,
pub manual_reset: bool,
}Expand description
State of an event synchronization primitive.
Events are signaling mechanisms that allow threads to wait for a condition to become true. There are two types:
- Manual reset events: Stay signaled until explicitly reset. All waiting threads are released when signaled.
- Auto reset events: Automatically reset after releasing exactly one waiting thread.
§Example
ⓘ
// Create a manual reset event, initially not signaled
let event = EventState::manual_reset(false);
// Create an auto reset event, initially signaled
let event = EventState::auto_reset(true);Fields§
§signaled: boolWhether the event is currently signaled (set).
manual_reset: boolWhether this is a manual reset event (true) or auto-reset event (false).
Implementations§
§impl EventState
impl EventState
pub fn manual_reset(signaled: bool) -> Self
pub fn manual_reset(signaled: bool) -> Self
Creates a new manual reset event with the specified initial state.
Manual reset events stay signaled after being set until explicitly
reset via SyncState::event_reset. When signaled, all waiting
threads are released.
§Arguments
signaled- Initial signaled state (true= signaled,false= not signaled)
pub fn auto_reset(signaled: bool) -> Self
pub fn auto_reset(signaled: bool) -> Self
Creates a new auto reset event with the specified initial state.
Auto reset events automatically transition to the non-signaled state after releasing exactly one waiting thread. This provides exclusive one-at-a-time wake-up semantics.
§Arguments
signaled- Initial signaled state (true= signaled,false= not signaled)
Trait Implementations§
§impl Clone for EventState
impl Clone for EventState
§fn clone(&self) -> EventState
fn clone(&self) -> EventState
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for EventState
§impl Debug for EventState
impl Debug for EventState
impl Eq for EventState
§impl PartialEq for EventState
impl PartialEq for EventState
impl StructuralPartialEq for EventState
Auto Trait Implementations§
impl Freeze for EventState
impl RefUnwindSafe for EventState
impl Send for EventState
impl Sync for EventState
impl Unpin for EventState
impl UnsafeUnpin for EventState
impl UnwindSafe for EventState
Blanket Implementations§
impl<T> Boilerplate for T
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for T
impl<T> Downcast for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.