pub struct PoolNode<T> { /* private fields */ }Expand description
A pool of exchangeable items
Implementations§
Source§impl<T> PoolNode<T>
impl<T> PoolNode<T>
Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns true if the pool node contains no connections in either the hot queue
or the overflow hash map.
§Concurrency note
This check is not atomic across the two internal stores (hot_queue and
connections). Between checking one and the other, a concurrent insert or
get_any could change the state. This is acceptable because callers use
is_empty only as a hint to attempt cleanup, and always re-verify under
an exclusive (write) lock before actually removing the node from the parent
pool HashMap. A false-negative simply defers cleanup to the next opportunity;
a false-positive is largely mitigated by the re-check (see
ConnectionPool::try_remove_empty_node for residual race-window analysis).
Auto Trait Implementations§
impl<T> !Freeze for PoolNode<T>
impl<T> !RefUnwindSafe for PoolNode<T>
impl<T> Send for PoolNode<T>
impl<T> Sync for PoolNode<T>
impl<T> Unpin for PoolNode<T>
impl<T> UnsafeUnpin for PoolNode<T>
impl<T> UnwindSafe for PoolNode<T>
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