#[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
sourceimpl<System: KernelSemaphore> SemaphoreRef<'static, System>
impl<System: KernelSemaphore> SemaphoreRef<'static, System>
sourcepub const fn define() -> SemaphoreDefiner<System>
pub const fn define() -> SemaphoreDefiner<System>
Construct a SemaphoreDefiner
to define a semaphore in a
configuration function.
Trait Implementations
sourceimpl<System: KernelSemaphore> Clone for SemaphoreRef<'_, System>
impl<System: KernelSemaphore> Clone for SemaphoreRef<'_, System>
sourceimpl<System: KernelSemaphore> Debug for SemaphoreRef<'_, System>
impl<System: KernelSemaphore> Debug for SemaphoreRef<'_, System>
sourceimpl<System: KernelSemaphore> Hash for SemaphoreRef<'_, System>
impl<System: KernelSemaphore> Hash for SemaphoreRef<'_, System>
sourceimpl<System: NotSupportedYet> PartialEq<Semaphore<System>> for SemaphoreRef<'_, System>
impl<System: NotSupportedYet> PartialEq<Semaphore<System>> for SemaphoreRef<'_, System>
sourceimpl<System: NotSupportedYet> PartialEq<SemaphoreRef<'_, System>> for Semaphore<System>
impl<System: NotSupportedYet> PartialEq<SemaphoreRef<'_, System>> for Semaphore<System>
sourceimpl<System: KernelSemaphore> PartialEq<SemaphoreRef<'_, System>> for SemaphoreRef<'_, System>
impl<System: KernelSemaphore> PartialEq<SemaphoreRef<'_, System>> for SemaphoreRef<'_, System>
sourceimpl<System: KernelSemaphore> SemaphoreHandle for SemaphoreRef<'_, System>
impl<System: KernelSemaphore> SemaphoreHandle for SemaphoreRef<'_, System>
type System = System
type System = System
The system type this object pertains to.
sourceconst unsafe fn from_id(id: <System as KernelSemaphore>::RawSemaphoreId) -> Self
const unsafe fn from_id(id: <System as KernelSemaphore>::RawSemaphoreId) -> Self
Construct a Semaphore
from RawSemaphoreId
. Read more
sourceconst fn id(&self) -> System::RawSemaphoreId
const fn id(&self) -> System::RawSemaphoreId
Get the raw RawSemaphoreId
value representing this object.
sourceconst fn borrow(&self) -> SemaphoreRef<'_, Self::System>
const fn borrow(&self) -> SemaphoreRef<'_, Self::System>
Borrow self
as SemaphoreRef
. Read more
impl<System: KernelSemaphore> Copy for SemaphoreRef<'_, System>
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> SemaphoreMethods for T where
T: SemaphoreHandle,
impl<T> SemaphoreMethods for T where
T: SemaphoreHandle,
sourcefn drain(&self) -> Result<(), DrainSemaphoreError>
fn drain(&self) -> Result<(), DrainSemaphoreError>
Remove all permits held by the semaphore.
sourcefn get(&self) -> Result<SemaphoreValue, GetSemaphoreError>
fn get(&self) -> Result<SemaphoreValue, GetSemaphoreError>
Get the number of permits currently held by the semaphore.
sourcefn signal(&self, count: SemaphoreValue) -> Result<(), SignalSemaphoreError>
fn signal(&self, count: SemaphoreValue) -> Result<(), SignalSemaphoreError>
Release count
permits, returning them to the semaphore.
sourcefn signal_one(&self) -> Result<(), SignalSemaphoreError>
fn signal_one(&self) -> Result<(), SignalSemaphoreError>
Release a permit, returning it to the semaphore.
sourcefn wait_one(&self) -> Result<(), WaitSemaphoreError>
fn wait_one(&self) -> Result<(), WaitSemaphoreError>
Acquire a permit, potentially blocking the calling thread until one is available. Read more
sourcefn wait_one_timeout(
&self,
timeout: Duration
) -> Result<(), WaitSemaphoreTimeoutError>
fn wait_one_timeout(
&self,
timeout: Duration
) -> Result<(), WaitSemaphoreTimeoutError>
wait_one
with timeout.
sourcefn poll_one(&self) -> Result<(), PollSemaphoreError>
fn poll_one(&self) -> Result<(), PollSemaphoreError>
Non-blocking version of wait_one
. Returns
immediately with PollSemaphoreError::Timeout
if the unblocking
condition is not satisfied. Read more