X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c0710834f51c63b06ecd9e59738c758278e4ec88..5a97de8c98502af9f74cfceb924fa02e0fd80925:/src/xbt/mmalloc/mm_module.c?ds=sidebyside diff --git a/src/xbt/mmalloc/mm_module.c b/src/xbt/mmalloc/mm_module.c index b0eeefc184..86c342163b 100644 --- a/src/xbt/mmalloc/mm_module.c +++ b/src/xbt/mmalloc/mm_module.c @@ -1,4 +1,4 @@ -/* Initialization for access to a mmap'd malloc managed region. */ +/* Initialization for acces s to a mmap'd malloc managed region. */ /* Copyright (c) 2012-2014. The SimGrid Team. * All rights reserved. */ @@ -137,7 +137,7 @@ xbt_mheap_t xbt_mheap_new_options(int fd, void *baseaddr, int options) mdptr = (struct mdesc *) newmd.base; mdptr->fd = fd; if(!mdptr->refcount){ - sem_init(&mdptr->sem, 0, 1); + pthread_mutex_init(&mdptr->mutex, NULL); mdptr->refcount++; } } @@ -182,8 +182,7 @@ xbt_mheap_t xbt_mheap_new_options(int fd, void *baseaddr, int options) if (mdp->fd < 0){ mdp->flags |= MMALLOC_ANONYMOUS; } - sem_init(&mdp->sem, 0, 1); - + pthread_mutex_init(&mdp->mutex, NULL); /* If we have not been passed a valid open file descriptor for the file to map to, then open /dev/zero and use that to map to. */ @@ -225,8 +224,7 @@ void xbt_mheap_destroy_no_free(xbt_mheap_t md) struct mdesc *mdp = md; if(--mdp->refcount == 0){ - LOCK(mdp) ; - sem_destroy(&mdp->sem); + pthread_mutex_destroy(&mdp->mutex); } } @@ -330,6 +328,8 @@ void *mmalloc_preinit(void) { int res; if (__mmalloc_default_mdp == NULL) { + if(!xbt_pagesize) + xbt_pagesize = getpagesize(); unsigned long mask = ~((unsigned long)xbt_pagesize - 1); void *addr = (void*)(((unsigned long)sbrk(0) + HEAP_OFFSET) & mask); __mmalloc_default_mdp = xbt_mheap_new_options(-1, addr, XBT_MHEAP_OPTION_MEMSET); @@ -343,7 +343,7 @@ void *mmalloc_preinit(void) } xbt_assert(__mmalloc_default_mdp != NULL); -#if defined(HAVE_GNU_LD) && defined(MMALLOC_WANT_OVERRIDE_LEGACY) +#if 0 && defined(HAVE_GNU_LD) && defined(MMALLOC_WANT_OVERRIDE_LEGACY) mm_gnuld_legacy_init(); #endif