Files
snmalloc/src/test/func/thread_alloc_external/thread_alloc_external.cc
Matthew Parkinson 136dd23932 Fixed test.
2020-02-26 20:39:31 +00:00

44 lines
815 B
C++

#include <test/setup.h>
#define SNMALLOC_EXTERNAL_THREAD_ALLOC
#include <mem/globalalloc.h>
using namespace snmalloc;
class ThreadAllocUntyped
{
public:
static void* get()
{
static thread_local void* alloc = nullptr;
if (alloc != nullptr)
{
return alloc;
}
alloc = current_alloc_pool()->acquire();
return alloc;
}
};
#include <snmalloc.h>
int main()
{
setup();
MemoryProviderStateMixin<DefaultPal> mp;
// 28 is large enough to produce a nested allocator.
// It is also large enough for the example to run in.
// For 1MiB superslabs, SUPERSLAB_BITS + 4 is not big enough for the example.
auto a = ThreadAlloc::get();
for (size_t i = 0; i < 1000; i++)
{
auto r1 = a->alloc(100);
a->dealloc(r1);
}
}