extern "C" BOOL WINAPI DllMain( HINSTANCE /*hInst*/, DWORD callReason, LPVOID ) { if (callReason==DLL_THREAD_DETACH) { __TBB_mallocThreadShutdownNotification(); } else if (callReason==DLL_PROCESS_DETACH) { __TBB_mallocProcessShutdownNotification(); } return TRUE; }
extern "C" void callDll() { static const int NUM = 20; void *ptrs[NUM]; for (int i=0; i<NUM; i++) { ptrs[i] = scalable_malloc(i*1024); ASSERT(ptrs[i], NULL); } for (int i=0; i<NUM; i++) scalable_free(ptrs[i]); #if __TBB_SOURCE_DIRECTLY_INCLUDED && (_WIN32||_WIN64) __TBB_mallocThreadShutdownNotification(); #endif }
void operator()(int) const { void *objs[ITERS]; for (int i=0; i<ITERS; i++) objs[i] = scalable_malloc(minLargeObjectSize-1); for (int i=0; i<ITERS; i++) scalable_free(objs[i]); #ifdef USE_WINTHREAD // Under Windows DllMain is used for mallocThreadShutdownNotification // calling. As DllMain is not used during whitebox testing, // we have to call the callback manually. __TBB_mallocThreadShutdownNotification(); #endif }