#include <bdlcc_skiplist.h>
This component-private utility handles the lock-free pool of list nodes.
See bdlcc_skiplist
◆ PoolManager
◆ allocate()
| static void * bdlcc::SkipList_PoolUtil::allocate |
( |
PoolManager * |
poolManager, |
|
|
int |
level |
|
) |
| |
|
static |
Reserve sufficient space for a node at the specified level from the specified poolManager, and return the address of the reserved memory.
◆ createPoolManager()
| static PoolManager * bdlcc::SkipList_PoolUtil::createPoolManager |
( |
int * |
objectSizes, |
|
|
int |
numLevels, |
|
|
bslma::Allocator * |
basicAllocator |
|
) |
| |
|
static |
Create a new pooled node allocator that manages nodes up to the specified numLevels as described by the specified objectSizes. For i in [0, numLevels), a node at level i will have size objectSizes[i] bytes. Use the specified basicAllocator to supply memory. Return the address of the new allocator.
- Note
- Note that the behavior is undefined if
basicAllocator is 0.
◆ deallocate()
| static void bdlcc::SkipList_PoolUtil::deallocate |
( |
PoolManager * |
poolManager, |
|
|
void * |
address |
|
) |
| |
|
static |
Return the node at the specified address to the specified poolManager.
- Precondition
- The behavior is undefined if
address was not allocated from poolManager.
◆ deletePoolManager()
Destroy the specified poolManager which was allocated from the specified basicAllocator.
- Precondition
- The behavior is undefined if
poolManager was not allocated from basicAllocator.
The documentation for this struct was generated from the following file: