1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//! Capacity-bounded object pool parameterizing the crate's single
//! slot-freelist implementation, [`crate::pool::LockFreeStack`].
use crateLockFreeStack;
/// Memory pool for reducing allocation overhead.
///
/// A capacity-bounded, lock-free object pool: [`Self::deallocate`] stores up to
/// `max_size` objects for reuse and [`Self::allocate`] pops a stored object or
/// falls back to `T::default()`. The freelist mechanics live in
/// [`LockFreeStack`]; this type only adds the pool vocabulary
/// (allocate/deallocate) over the stack's fixed slot capacity.