CV_Assert(this != currentContext);
#ifdef CL_VERSION_1_2
- if (supportsFeature(FEATURE_CL_VER_1_2))
+#ifdef WIN32
+ // if process is on termination stage (ExitProcess was called and other threads were terminated)
+ // then disable command queue release because it may cause program hang
+ if (!__termination)
+#endif
{
- openCLSafeCall(clReleaseDevice(clDeviceID));
+ if (supportsFeature(FEATURE_CL_VER_1_2))
+ {
+ openCLSafeCall(clReleaseDevice(clDeviceID));
+ }
}
#endif
if (deviceInfoImpl._id < 0) // not in the global registry, so we should cleanup it