Mercurial > hg > orthanc
diff OrthancFramework/SharedLibrary/DllMain.cpp @ 4063:e00f3d089991 framework
shared library of orthanc framework
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 11 Jun 2020 16:40:34 +0200 |
parents | |
children | 50cb0fb99e34 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/OrthancFramework/SharedLibrary/DllMain.cpp Thu Jun 11 16:40:34 2020 +0200 @@ -0,0 +1,61 @@ +/** + + This file merges 2 files: + ${BOOST_SOURCES_DIR}/libs/thread/src/win32/tss_dll.cpp + ${OPENSSL_SOURCES_DIR}/crypto/dllmain.c + + **/ + +#if defined(_WIN32) || defined(__CYGWIN__) +# ifdef __CYGWIN__ +# include <windows.h> +# endif + +#include "e_os.h" +#include "crypto/cryptlib.h" + +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +{ + switch (fdwReason) + { + case DLL_PROCESS_ATTACH: + //OPENSSL_cpuid_setup(); // TODO - Is this necessary? + break; + + case DLL_THREAD_ATTACH: + break; + + case DLL_THREAD_DETACH: + OPENSSL_thread_stop(); + break; + + case DLL_PROCESS_DETACH: + break; + } + + return TRUE; +} + +#endif + + +namespace boost +{ + void tss_cleanup_implemented() + { + /* + This function's sole purpose is to cause a link error in cases where + automatic tss cleanup is not implemented by Boost.Threads as a + reminder that user code is responsible for calling the necessary + functions at the appropriate times (and for implementing an a + tss_cleanup_implemented() function to eliminate the linker's + missing symbol error). + + If Boost.Threads later implements automatic tss cleanup in cases + where it currently doesn't (which is the plan), the duplicate + symbol error will warn the user that their custom solution is no + longer needed and can be removed. + */ + } +} +