本文整理汇总了C++中Obj::deallocate方法的典型用法代码示例。如果您正苦于以下问题:C++ Obj::deallocate方法的具体用法?C++ Obj::deallocate怎么用?C++ Obj::deallocate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Obj
的用法示例。
在下文中一共展示了Obj::deallocate方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ASSERT
extern "C" void *workerThread(void *arg) {
// Perform a series of allocate, and deallocate operations on the
// 'bdlma::ConcurrentAllocatorAdapter' and verify their results. This
// operation is intended to be a thread entry point. Cast the specified
// 'args' to a 'WorkerArgs', and perform a series of
// '(WorkerArgs *)args->d_numSizes' allocations using the corresponding
// allocations sizes specified by '(WorkerARgs *)args->d_sizes'. Use the
// barrier 'g_barrier' to ensure tests are performed while the allocator is
// in the correct state.
WorkerArgs *args = (WorkerArgs *) arg;
ASSERT(0 != args);
ASSERT(0 != args->d_sizes);
Obj *allocator = args->d_allocator;
const int *allocSizes = args->d_sizes;
const int numAllocs = args->d_numSizes;
bsl::vector<char *> blocks(bslma::Default::allocator(0));
blocks.resize(numAllocs);
g_barrier.wait();
// Perform allocations
for (int i = 0; i < numAllocs; ++i) {
blocks[i] = (char *)allocator->allocate(allocSizes[i]);
}
// deallocate all the blocks
for (int i = 0; i < numAllocs; ++i) {
allocator->deallocate(blocks[i]);
}
g_barrier.wait();
return arg;
}