Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
model-checker : memcmp on space really used in fragment
[simgrid.git] / src / xbt / xbt_main.c
index 36c5edf..61522a6 100644 (file)
@@ -74,6 +74,7 @@ static void xbt_postexit(void) _XBT_GNUC_DESTRUCTOR;
 #ifdef _XBT_WIN32
 #include <windows.h>
 
+#ifndef __GNUC__
 /* Dummy prototype to make gcc happy */
 BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
                     LPVOID lpvReserved);
@@ -81,7 +82,6 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
 /* Should not be necessary but for some reason,
  * DllMain is called twice at attachment and
  * at detachment.*/
-static int xbt_dll_process_is_dattached = 0;
 static int xbt_dll_process_is_attached = 0;
 
 /* see also http://msdn.microsoft.com/en-us/library/ms682583%28VS.85%29.aspx */
@@ -91,20 +91,21 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
 {
   if (fdwReason == DLL_PROCESS_ATTACH
                  && xbt_dll_process_is_attached == 0) {
+         xbt_dll_process_is_attached = 1;
          xbt_preinit();
   } else if (fdwReason == DLL_PROCESS_DETACH
-                 && xbt_dll_process_is_dattached == 0) {
+                 && xbt_dll_process_is_attached == 1) {
+         xbt_dll_process_is_attached = 0;
       xbt_postexit();
   }
   return 1;
 }
-
+#endif
 
 #endif
 
 static void xbt_preinit(void)
 {
-  xbt_dll_process_is_attached = 1;
 #ifdef MMALLOC_WANT_OVERIDE_LEGACY
   mmalloc_preinit();
 #endif
@@ -151,7 +152,6 @@ static void xbt_preinit(void)
 
 static void xbt_postexit(void)
 {
-  xbt_dll_process_is_dattached = 1;
   xbt_trp_postexit();
   xbt_datadesc_postexit();