pub struct ClientWorkspacePool<const N: usize> { /* private fields */ }Expand description
Fixed-capacity atomic admission for caller-supplied workspaces.
The pool stores no buffers and has no wait queue. Exhaustion is immediate.
Implementations§
Source§impl<const N: usize> ClientWorkspacePool<N>
impl<const N: usize> ClientWorkspacePool<N>
Sourcepub const fn new() -> Result<Self, WorkspacePoolError>
pub const fn new() -> Result<Self, WorkspacePoolError>
Creates a pool when N fits the platform atomic bitmap.
Sourcepub fn try_acquire<'pool, 'storage>(
&'pool self,
workspace: ClientWorkspace<'storage>,
) -> Result<ClientWorkspaceLease<'pool, 'storage, N>, WorkspaceAcquireError>
pub fn try_acquire<'pool, 'storage>( &'pool self, workspace: ClientWorkspace<'storage>, ) -> Result<ClientWorkspaceLease<'pool, 'storage, N>, WorkspaceAcquireError>
Admits one workspace immediately or returns exhaustion without queuing.
Sourcepub fn active_leases(&self) -> usize
pub fn active_leases(&self) -> usize
Returns the number of currently admitted workspaces.
Trait Implementations§
Auto Trait Implementations§
impl<const N: usize> !Freeze for ClientWorkspacePool<N>
impl<const N: usize> RefUnwindSafe for ClientWorkspacePool<N>
impl<const N: usize> Send for ClientWorkspacePool<N>
impl<const N: usize> Sync for ClientWorkspacePool<N>
impl<const N: usize> Unpin for ClientWorkspacePool<N>
impl<const N: usize> UnsafeUnpin for ClientWorkspacePool<N>
impl<const N: usize> UnwindSafe for ClientWorkspacePool<N>
Blanket Implementations§
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