pub struct FixedSizeObjectPool<T: Poolable> { /* private fields */ }
Expand description
A fixed-size object pool.
All items for this object pool are created up front, and when the object pool is empty, calls to acquire
will
block until an item is returned to the pool.
§Metrics
object_pool.acquired{pool_name="<pool_name>"}
- total count of the number of objects acquired from the pool (counter)object_pool.released{pool_name="<pool_name>"}
- total count of the number of objects released back to the pool (counter)object_pool.in_use{pool_name="<pool_name>"}
- number of objects from the pool that are currently in use (gauge)
Implementations§
Source§impl<T: Poolable> FixedSizeObjectPool<T>
impl<T: Poolable> FixedSizeObjectPool<T>
Sourcepub fn with_capacity<S>(pool_name: S, capacity: usize) -> Self
pub fn with_capacity<S>(pool_name: S, capacity: usize) -> Self
Creates a new FixedSizeObjectPool
with the given capacity.
Metrics are emitted for the pool with a tag (pool_name
) that is set to the value of the given pool name.
Source§impl<T: Poolable> FixedSizeObjectPool<T>
impl<T: Poolable> FixedSizeObjectPool<T>
Sourcepub fn with_builder<S, B>(pool_name: S, capacity: usize, builder: B) -> Self
pub fn with_builder<S, B>(pool_name: S, capacity: usize, builder: B) -> Self
Creates a new FixedSizeObjectPool
with the given capacity and item builder.
builder
is called to construct each item.
Metrics are emitted for the pool with a tag (pool_name
) that is set to the value of the given pool name.
Trait Implementations§
Source§impl<T: Poolable> Clone for FixedSizeObjectPool<T>
impl<T: Poolable> Clone for FixedSizeObjectPool<T>
Source§impl<T> ObjectPool for FixedSizeObjectPool<T>
impl<T> ObjectPool for FixedSizeObjectPool<T>
Source§type AcquireFuture = FixedSizeAcquireFuture<T>
type AcquireFuture = FixedSizeAcquireFuture<T>
Type of future returned by
acquire
.Source§fn acquire(&self) -> Self::AcquireFuture
fn acquire(&self) -> Self::AcquireFuture
Acquires an item from the object pool.
Auto Trait Implementations§
impl<T> Freeze for FixedSizeObjectPool<T>
impl<T> !RefUnwindSafe for FixedSizeObjectPool<T>
impl<T> Send for FixedSizeObjectPool<T>
impl<T> Sync for FixedSizeObjectPool<T>
impl<T> Unpin for FixedSizeObjectPool<T>
impl<T> !UnwindSafe for FixedSizeObjectPool<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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request
Source§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Track for T
impl<T> Track for T
§fn track_allocations(self, token: AllocationGroupToken) -> Tracked<Self>
fn track_allocations(self, token: AllocationGroupToken) -> Tracked<Self>
Instruments this type by attaching the given allocation group token, returning a
Tracked
wrapper. Read more§fn in_current_allocation_group(self) -> Tracked<Self>
fn in_current_allocation_group(self) -> Tracked<Self>
Instruments this type by attaching the current allocation group, returning a
Tracked
wrapper. Read more