Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
(wip) Move the MCed public API in the same file
[simgrid.git] / src / mc / mc_memory.c
index d1c804b..72f51a9 100644 (file)
@@ -8,6 +8,8 @@
 #include <fcntl.h>
 
 #include "xbt/log.h"
+#include "xbt/dynar.h"
+#include "xbt/virtu.h"
 
 #include "mc/mc.h"
 #include "mc_object_info.h"
@@ -24,6 +26,10 @@ xbt_mheap_t mc_heap = NULL;           /* memory persistent over the MC rollbacks
 /* It creates the two heap regions: std_heap and mc_heap */
 void MC_memory_init()
 {
+  if (!malloc_use_mmalloc()) {
+    xbt_die("Model-checking support is not enabled: run with simgrid-mc.");
+  }
+
   /* Create the first region HEAP_OFFSET bytes after the heap break address */
   std_heap = mmalloc_get_default_md();
   xbt_assert(std_heap != NULL);
@@ -40,6 +46,6 @@ void MC_memory_init()
 #include "xbt_modinter.h"
 void MC_memory_exit(void)
 {
-  if (mc_heap)
+  if (mc_heap && mc_heap != std_heap)
     xbt_mheap_destroy(mc_heap);
 }