X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/efcbaa29db1ec8eddaafed404004d140e609df4d..62ab7fd2280a35af7c36f602852bc53fc0a56093:/src/xbt/xbt_main.c diff --git a/src/xbt/xbt_main.c b/src/xbt/xbt_main.c index 4923f24b47..52ec606361 100644 --- a/src/xbt/xbt_main.c +++ b/src/xbt/xbt_main.c @@ -9,9 +9,8 @@ #define XBT_LOG_LOCALLY_DEFINE_XBT_CHANNEL /* MSVC don't want it to be declared extern in headers and local here */ #include "xbt/misc.h" -#include "simgrid_config.h" /* _XBT_WIN32 */ -#include "internal_config.h" /* MMALLOC_WANT_OVERRIDE_LEGACY */ -#include "portable.h" +#include "simgrid_config.h" +#include "src/portable.h" #include "xbt/sysdep.h" #include "xbt/log.h" #include "xbt/dynar.h" @@ -19,13 +18,13 @@ #include "xbt/module.h" /* this module */ -#include "xbt_modinter.h" /* prototype of other module's init/exit in XBT */ +#include "src/xbt_modinter.h" /* prototype of other module's init/exit in XBT */ #include "simgrid/sg_config.h" #include -#ifdef _XBT_WIN32 -#include +#ifdef _WIN32 +#include /* To silence MSVC on abort() */ #endif XBT_LOG_NEW_DEFAULT_SUBCATEGORY(module, xbt, "module handling"); @@ -48,7 +47,7 @@ int xbt_pagebits = 0; static void xbt_preinit(void) _XBT_GNUC_CONSTRUCTOR(200); static void xbt_postexit(void); -#ifdef _XBT_WIN32 +#ifdef _WIN32 # undef _XBT_NEED_INIT_PRAGMA #endif @@ -56,14 +55,10 @@ static void xbt_postexit(void); #pragma init (xbt_preinit) #endif -#ifdef _XBT_WIN32 +#ifdef _WIN32 #include #ifndef __GNUC__ -/* Dummy prototype to make gcc happy */ -BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, - LPVOID lpvReserved); - /* Should not be necessary but for some reason, * DllMain is called twice at attachment and * at detachment.*/ @@ -71,8 +66,7 @@ static int xbt_dll_process_is_attached = 0; /* see also http://msdn.microsoft.com/en-us/library/ms682583%28VS.85%29.aspx */ /* and http://www.microsoft.com/whdc/driver/kernel/DLL_bestprac.mspx */ -BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, - LPVOID lpvReserved) +static BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { if (fdwReason == DLL_PROCESS_ATTACH && xbt_dll_process_is_attached == 0) { @@ -90,7 +84,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, static void xbt_preinit(void) { unsigned int seed = 2147483647; -#ifndef WIN32 +#ifndef _WIN32 xbt_pagesize = sysconf(_SC_PAGESIZE); #else SYSTEM_INFO si; @@ -124,6 +118,7 @@ static void xbt_preinit(void) { static void xbt_postexit(void) { if(!_sg_do_clean_atexit) return; + xbt_initialized--; xbt_backtrace_postexit(); xbt_fifo_postexit(); xbt_dict_postexit(); @@ -131,7 +126,7 @@ static void xbt_postexit(void) xbt_dynar_free(&xbt_cmdline); xbt_log_postexit(); free(xbt_binary_name); -#ifdef MMALLOC_WANT_OVERRIDE_LEGACY +#if HAVE_MC mmalloc_postexit(); #endif } @@ -183,7 +178,7 @@ void xbt_abort(void) extern void __gcov_flush(void); __gcov_flush(); #endif -#ifdef _XBT_WIN32 +#ifdef _WIN32 /* It was said *in silence*. We don't want to see the error message printed * by the Microsoft's implementation of abort(). */ raise(SIGABRT);