ocl: fix cleanup on Windows platform (for clAmdBlas/clAmdFft)

This commit is contained in:
Alexander Alekhin 2013-10-06 14:34:36 +04:00
parent d5723480e1
commit 6b9f74ae84

View File

@ -724,7 +724,14 @@ bool supportsFeature(FEATURE_TYPE featureType)
struct __Module
{
__Module() { /* moved to Context::getContext(): initializeOpenCLDevices(); */ }
~__Module() { ContextImpl::cleanupContext(); }
~__Module()
{
#if defined(WIN32) && defined(CVAPI_EXPORTS)
// nothing, see DllMain
#else
ContextImpl::cleanupContext();
#endif
}
};
static __Module __module;
@ -742,6 +749,7 @@ BOOL WINAPI DllMain(HINSTANCE /*hInst*/, DWORD fdwReason, LPVOID lpReserved)
{
if (lpReserved != NULL) // called after ExitProcess() call
cv::ocl::__termination = true;
cv::ocl::ContextImpl::cleanupContext();
}
return TRUE;
}