ariel_os::thread::sync

Struct Event

pub struct Event { /* private fields */ }
Available on crate feature threading only.
Expand description

An Event, allowing to notify multiple threads that some event has happened.

An Event manages an internal flag that can be set to true with the Self::set() method and reset to false with the Self::clear() method. The Self::wait() method blocks until the flag is set to true. The flag is set to false initially.

Implementations§

§

impl Event

pub const fn new() -> Event

Creates a new unset Event.

pub const fn new_set() -> Event

Creates a new set Event.

pub fn is_set(&self) -> bool

Returns whether the Event is set.

pub fn wait(&self)

Waits for this Event to be set (blocking).

If the event was set, this function returns directly. If the event was unset, this function will block the current thread until the event gets set elsewhere.

§Panics

Panics if this is called outside of a thread context.

pub fn clear(&self) -> bool

Clears the event (non-blocking).

If the event was set, it will be cleared and the function returns true. If the event was unset, the function returns false.

pub fn set(&self)

Sets the event.

If the event was unset, and there were waiters, all waiters will be woken up. If the event was already set, the function just returns.

Trait Implementations§

§

impl Default for Event

§

fn default() -> Event

Returns the “default value” for a type. Read more
§

impl Sync for Event

Auto Trait Implementations§

§

impl !Freeze for Event

§

impl !RefUnwindSafe for Event

§

impl Send for Event

§

impl Unpin for Event

§

impl UnwindSafe for Event

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.

§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

§

const WITNESS: W = W::MAKE

A constant of the type witness
§

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

§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
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> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V