X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6a3b1c86082daac913e600fa38960ea106bba619..6a6209ae617ba25152ddd80cd3b79d72748d7bd5:/src/xbt/mmalloc/mm_module.c diff --git a/src/xbt/mmalloc/mm_module.c b/src/xbt/mmalloc/mm_module.c index 8f538f19e5..07cbe7ef7e 100644 --- a/src/xbt/mmalloc/mm_module.c +++ b/src/xbt/mmalloc/mm_module.c @@ -312,8 +312,6 @@ static void mmalloc_fork_child(void) } } - - /* Initialize the default malloc descriptor. */ void *mmalloc_preinit(void) { @@ -323,13 +321,19 @@ void *mmalloc_preinit(void) void *addr = (void*)(((unsigned long)sbrk(0) + HEAP_OFFSET) & mask); __mmalloc_default_mdp = xbt_mheap_new(-1, addr); /* Fixme? only the default mdp in protected against forks */ - res = xbt_os_thread_atfork(mmalloc_fork_prepare, + // This is mandated to protect the mmalloced areas through forks. Think of tesh. + // Nah, removing the mutex isn't a good idea either for tesh + res = xbt_os_thread_atfork(mmalloc_fork_prepare, mmalloc_fork_parent, mmalloc_fork_child); if (res != 0) THROWF(system_error,0,"xbt_os_thread_atfork() failed: return value %d",res); } xbt_assert(__mmalloc_default_mdp != NULL); +#if defined(HAVE_GNU_LD) && defined(MMALLOC_WANT_OVERRIDE_LEGACY) + mm_gnuld_legacy_init(); +#endif + return __mmalloc_default_mdp; } @@ -340,21 +344,6 @@ void mmalloc_postexit(void) xbt_mheap_destroy_no_free(__mmalloc_default_mdp); } -void check_fraghead(struct mdesc *mdp){ - - struct list* next; - int j; - - for (j=8; j<12; j++){ - next = mdp->fraghead[j].next; - if(next != NULL){ - while(next->next != NULL){ - if(next->next->prev == NULL); - next = next->next; - } - } - } - - //fprintf(stderr, "check fraghead ok\n"); - +size_t mmalloc_get_chunks_used(xbt_mheap_t heap){ + return ((struct mdesc *)heap)->heapstats.chunks_used; }