Struct r3_core::kernel::semaphore::SemaphoreRef
source · #[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>
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§
source§impl<System: KernelSemaphore> Clone for SemaphoreRef<'_, System>
impl<System: KernelSemaphore> Clone for SemaphoreRef<'_, System>
source§impl<System: KernelSemaphore> Debug for SemaphoreRef<'_, System>
impl<System: KernelSemaphore> Debug for SemaphoreRef<'_, System>
source§impl<System: KernelSemaphore> Hash for SemaphoreRef<'_, System>
impl<System: KernelSemaphore> Hash for SemaphoreRef<'_, System>
source§impl<System: NotSupportedYet> PartialEq<Semaphore<System>> for SemaphoreRef<'_, System>
impl<System: NotSupportedYet> PartialEq<Semaphore<System>> for SemaphoreRef<'_, System>
source§impl<System: NotSupportedYet> PartialEq<SemaphoreRef<'_, System>> for Semaphore<System>
impl<System: NotSupportedYet> PartialEq<SemaphoreRef<'_, System>> for Semaphore<System>
source§fn eq(&self, other: &SemaphoreRef<'_, System>) -> bool
fn eq(&self, other: &SemaphoreRef<'_, System>) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl<System: KernelSemaphore> PartialEq<SemaphoreRef<'_, System>> for SemaphoreRef<'_, System>
impl<System: KernelSemaphore> PartialEq<SemaphoreRef<'_, System>> for SemaphoreRef<'_, System>
source§impl<System: KernelSemaphore> SemaphoreHandle for SemaphoreRef<'_, System>
impl<System: KernelSemaphore> SemaphoreHandle for SemaphoreRef<'_, System>
source§const unsafe fn from_id(id: <System as KernelSemaphore>::RawSemaphoreId) -> Self
const unsafe fn from_id(id: <System as KernelSemaphore>::RawSemaphoreId) -> Self
source§const fn id(&self) -> System::RawSemaphoreId
const fn id(&self) -> System::RawSemaphoreId
Get the raw
RawSemaphoreId
value representing this object.source§const fn borrow(&self) -> SemaphoreRef<'_, Self::System>
const fn borrow(&self) -> SemaphoreRef<'_, Self::System>
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§
source§impl<T> SemaphoreMethods for Twhere
T: SemaphoreHandle,
impl<T> SemaphoreMethods for Twhere T: SemaphoreHandle,
source§fn get(&self) -> Result<SemaphoreValue, GetSemaphoreError>
fn get(&self) -> Result<SemaphoreValue, GetSemaphoreError>
Get the number of permits currently held by the semaphore.
source§fn signal(&self, count: SemaphoreValue) -> Result<(), SignalSemaphoreError>
fn signal(&self, count: SemaphoreValue) -> Result<(), SignalSemaphoreError>
Release
count
permits, returning them to the semaphore.source§fn signal_one(&self) -> Result<(), SignalSemaphoreError>
fn signal_one(&self) -> Result<(), SignalSemaphoreError>
Release a permit, returning it to the semaphore.
source§fn 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
source§fn wait_one_timeout(
&self,
timeout: Duration
) -> Result<(), WaitSemaphoreTimeoutError>
fn wait_one_timeout( &self, timeout: Duration ) -> Result<(), WaitSemaphoreTimeoutError>
wait_one
with timeout.source§fn 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.