Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[sonar] Remove useless commented lines of code.
[simgrid.git] / src / xbt / mmalloc / mm_module.c
index ec21f2d..825d992 100644 (file)
@@ -1,6 +1,6 @@
 /* Initialization for acces s to a mmap'd malloc managed region. */
 
-/* Copyright (c) 2012-2014. The SimGrid Team.
+/* Copyright (c) 2012-2019. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -272,12 +272,6 @@ void *xbt_mheap_destroy(xbt_mheap_t mdp)
  * Try to increase this first if you experience strange errors under valgrind. */
 #define HEAP_OFFSET   (128UL<<20)
 
-xbt_mheap_t mmalloc_get_default_md(void)
-{
-  xbt_assert(__mmalloc_default_mdp);
-  return __mmalloc_default_mdp;
-}
-
 static void mmalloc_fork_prepare(void)
 {
   xbt_mheap_t mdp = NULL;
@@ -324,12 +318,10 @@ void *mmalloc_preinit(void)
     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);
-    /* Fixme? only the default mdp in protected against forks */
-    // 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
-    int 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);
+
+    // atfork mandated at least on FreeBSD, or simgrid-mc will fail to fork the verified app
+    int res = pthread_atfork(mmalloc_fork_prepare, mmalloc_fork_parent, mmalloc_fork_child);
+    xbt_assert(res == 0, "pthread_atfork() failed: return value %d", res);
   }
   xbt_assert(__mmalloc_default_mdp != NULL);
 
@@ -340,7 +332,7 @@ void mmalloc_postexit(void)
 {
   /* Do not destroy the default mdp or ldl won't be able to free the memory it
    * allocated since we're in memory */
-  // xbt_mheap_destroy_no_free(__mmalloc_default_mdp);
+  // xbt_mheap_destroy_no_free(__mmalloc_default_mdp)
 }
 
 // This is the underlying implementation of mmalloc_get_bytes_used_remote.
@@ -362,22 +354,3 @@ size_t mmalloc_get_bytes_used_remote(size_t heaplimit, const malloc_info* heapin
   }
   return bytes;
 }
-
-size_t mmalloc_get_bytes_used(const xbt_mheap_t heap){
-  const struct mdesc* heap_data = (const struct mdesc *) heap;
-  return mmalloc_get_bytes_used_remote(heap_data->heaplimit, heap_data->heapinfo);
-}
-
-ssize_t mmalloc_get_busy_size(xbt_mheap_t heap, void *ptr){
-
-  ssize_t block = ((char*)ptr - (char*)(heap->heapbase)) / BLOCKSIZE + 1;
-  if(heap->heapinfo[block].type < 0)
-    return -1;
-  else if(heap->heapinfo[block].type == MMALLOC_TYPE_UNFRAGMENTED)
-    return heap->heapinfo[block].busy_block.busy_size;
-  else{
-    ssize_t frag = ((uintptr_t) (ADDR2UINT (ptr) % (BLOCKSIZE))) >> heap->heapinfo[block].type;
-    return heap->heapinfo[block].busy_frag.frag_size[frag];
-  }
-
-}