to detect process termination after ExitProcess() callpull/12791/head
parent
ad93ed720d
commit
70f2ee917e
3 changed files with 47 additions and 2 deletions
@ -0,0 +1,36 @@ |
||||
// This file is part of OpenCV project.
|
||||
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
||||
// of this distribution and at http://opencv.org/license.html.
|
||||
|
||||
#ifndef _WIN32 |
||||
#error "Build configuration error" |
||||
#endif |
||||
#ifndef CVAPI_EXPORTS |
||||
#error "Build configuration error" |
||||
#endif |
||||
|
||||
#define WIN32_LEAN_AND_MEAN |
||||
#include <windows.h> |
||||
|
||||
#define OPENCV_MODULE_S "@the_module@" |
||||
|
||||
namespace cv { |
||||
extern __declspec(dllimport) bool __termination; // Details: #12750
|
||||
} |
||||
|
||||
extern "C" |
||||
BOOL WINAPI DllMain(HINSTANCE, DWORD fdwReason, LPVOID lpReserved); |
||||
|
||||
extern "C" |
||||
BOOL WINAPI DllMain(HINSTANCE, DWORD fdwReason, LPVOID lpReserved) |
||||
{ |
||||
if (fdwReason == DLL_THREAD_DETACH || fdwReason == DLL_PROCESS_DETACH) |
||||
{ |
||||
if (lpReserved != NULL) // called after ExitProcess() call
|
||||
{ |
||||
//printf("OpenCV: terminating: " OPENCV_MODULE_S "\n");
|
||||
cv::__termination = true; |
||||
} |
||||
} |
||||
return TRUE; |
||||
} |
Loading…
Reference in new issue