#[repr(transparent)]
pub struct SemaphoreRef<'a, System: KernelSemaphore>(_, _);
Expand description

Represents a single borrowed semaphore in a system.

This type is ABI-compatible with System::RawSemaphoreId. It’s logically equivalent to &'a Semaphore but instead stores RawSemaphoreId directly.

See Semaphore for the owned counterpart and the description of this kernel object. See SemaphoreMethods for the operations provided by this handle type.

Implementations§

source§

impl<System: KernelSemaphore> SemaphoreRef<'static, System>

source

pub const fn define() -> SemaphoreDefiner<System>

Construct a SemaphoreDefiner to define a semaphore in a configuration function.

Trait Implementations§

source§

impl<System: KernelSemaphore> Clone for SemaphoreRef<'_, System>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<System: KernelSemaphore> Debug for SemaphoreRef<'_, System>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<System: KernelSemaphore> Hash for SemaphoreRef<'_, System>

source§

fn hash<H>(&self, state: &mut H)where H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<System: NotSupportedYet> PartialEq<Semaphore<System>> for SemaphoreRef<'_, System>

source§

fn eq(&self, other: &Semaphore<System>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<System: NotSupportedYet> PartialEq<SemaphoreRef<'_, System>> for Semaphore<System>

source§

fn eq(&self, other: &SemaphoreRef<'_, System>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<System: KernelSemaphore> PartialEq<SemaphoreRef<'_, System>> for SemaphoreRef<'_, System>

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<System: KernelSemaphore> SemaphoreHandle for SemaphoreRef<'_, System>

§

type System = System

The system type this object pertains to.
source§

const unsafe fn from_id(id: <System as KernelSemaphore>::RawSemaphoreId) -> Self

Construct a Semaphore from RawSemaphoreId. Read more
source§

const fn id(&self) -> System::RawSemaphoreId

Get the raw RawSemaphoreId value representing this object.
source§

const fn borrow(&self) -> SemaphoreRef<'_, Self::System>

source§

impl<System: KernelSemaphore> Copy for SemaphoreRef<'_, System>

source§

impl<System: KernelSemaphore> Eq for SemaphoreRef<'_, System>

Auto Trait Implementations§

§

impl<'a, System> RefUnwindSafe for SemaphoreRef<'a, System>where <System as KernelSemaphore>::RawSemaphoreId: RefUnwindSafe,

§

impl<'a, System> Send for SemaphoreRef<'a, System>

§

impl<'a, System> Sync for SemaphoreRef<'a, System>

§

impl<'a, System> Unpin for SemaphoreRef<'a, System>where <System as KernelSemaphore>::RawSemaphoreId: Unpin,

§

impl<'a, System> UnwindSafe for SemaphoreRef<'a, System>where <System as KernelSemaphore>::RawSemaphoreId: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · 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> SemaphoreMethods for Twhere T: SemaphoreHandle,

source§

fn drain(&self) -> Result<(), DrainSemaphoreError>

Remove all permits held by the semaphore.
source§

fn get(&self) -> Result<SemaphoreValue, GetSemaphoreError>

Get the number of permits currently held by the semaphore.
source§

fn signal(&self, count: SemaphoreValue) -> Result<(), SignalSemaphoreError>

Release count permits, returning them to the semaphore.
source§

fn signal_one(&self) -> Result<(), SignalSemaphoreError>

Release a permit, returning it to the semaphore.
source§

fn wait_one(&self) -> Result<(), WaitSemaphoreError>

Acquire a permit, potentially blocking the calling thread until one is available. Read more
source§

fn wait_one_timeout( &self, timeout: Duration ) -> Result<(), WaitSemaphoreTimeoutError>

wait_one with timeout.
source§

fn poll_one(&self) -> Result<(), PollSemaphoreError>

Non-blocking version of wait_one. Returns immediately with PollSemaphoreError::Timeout if the unblocking condition is not satisfied.
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.