pub struct PooledPackedLightQueues {
inner: PackedLightPropagationQueues,
}Expand description
A packed propagation queue pair leased from a thread-local pool.
Light chunk work constructs fresh queues per chunk; leasing recycles the worker’s previous buffers instead of reallocating ~64 KiB each time. The guard returns its buffers to the pool on drop, so early returns and panics stay safe.
Dropping an oversized lease discards its buffers without evicting a pair that an overlapping lease has already parked.
Fields§
§inner: PackedLightPropagationQueuesImplementations§
Methods from Deref<Target = PackedLightPropagationQueues>§
Sourcepub fn has_work(&self) -> bool
pub fn has_work(&self) -> bool
Returns true when either packed propagation queue contains work.
Sourcepub fn enqueue_decrease(&mut self, entry: PackedLightQueueEntry)
pub fn enqueue_decrease(&mut self, entry: PackedLightQueueEntry)
Enqueues packed decrease propagation work.
Sourcepub fn enqueue_increase(&mut self, entry: PackedLightQueueEntry)
pub fn enqueue_increase(&mut self, entry: PackedLightQueueEntry)
Enqueues packed increase propagation work.
Sourcepub fn dequeue_decrease(&mut self) -> Option<PackedLightQueueEntry>
pub fn dequeue_decrease(&mut self) -> Option<PackedLightQueueEntry>
Dequeues packed decrease propagation work.
Sourcepub fn dequeue_increase(&mut self) -> Option<PackedLightQueueEntry>
pub fn dequeue_increase(&mut self) -> Option<PackedLightQueueEntry>
Dequeues packed increase propagation work.
fn total_capacity(&self) -> usize
Trait Implementations§
Source§impl Default for PooledPackedLightQueues
impl Default for PooledPackedLightQueues
Source§impl Deref for PooledPackedLightQueues
impl Deref for PooledPackedLightQueues
Source§impl DerefMut for PooledPackedLightQueues
impl DerefMut for PooledPackedLightQueues
Source§impl Drop for PooledPackedLightQueues
impl Drop for PooledPackedLightQueues
Auto Trait Implementations§
impl Freeze for PooledPackedLightQueues
impl RefUnwindSafe for PooledPackedLightQueues
impl Send for PooledPackedLightQueues
impl Sync for PooledPackedLightQueues
impl Unpin for PooledPackedLightQueues
impl UnsafeUnpin for PooledPackedLightQueues
impl UnwindSafe for PooledPackedLightQueues
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreWraps this value in an
Arc<SyncMutex<>>