view OrthancFramework/SharedLibrary/DllMain.cpp @ 4103:c5efe8897da8

rename ORTHANC_INSTALL_DIR as ORTHANC_INSTALL_PREFIX for more consistency with CMake
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 06 Jul 2020 10:59:11 +0200
parents e00f3d089991
children 50cb0fb99e34
line wrap: on
line source

/**

   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.
    */
  }
}