Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use only one variable and protect for windows only
authornavarro <navarro@caraja.(none)>
Mon, 13 Feb 2012 16:44:19 +0000 (17:44 +0100)
committernavarro <navarro@caraja.(none)>
Mon, 13 Feb 2012 16:44:19 +0000 (17:44 +0100)
src/xbt/xbt_main.c

index 36c5edf..21554b1 100644 (file)
@@ -81,7 +81,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 */
@@ -93,7 +92,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
                  && xbt_dll_process_is_attached == 0) {
          xbt_preinit();
   } else if (fdwReason == DLL_PROCESS_DETACH
-                 && xbt_dll_process_is_dattached == 0) {
+                 && xbt_dll_process_is_attached == 1) {
       xbt_postexit();
   }
   return 1;
@@ -104,7 +103,9 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
 
 static void xbt_preinit(void)
 {
+#ifdef _XBT_WIN32
   xbt_dll_process_is_attached = 1;
+#endif
 #ifdef MMALLOC_WANT_OVERIDE_LEGACY
   mmalloc_preinit();
 #endif
@@ -151,7 +152,9 @@ static void xbt_preinit(void)
 
 static void xbt_postexit(void)
 {
-  xbt_dll_process_is_dattached = 1;
+#ifdef _XBT_WIN32
+  xbt_dll_process_is_attached = 0;
+#endif
   xbt_trp_postexit();
   xbt_datadesc_postexit();