Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
The mallocators of dict and fifo are created in pre-init, ie before we know whether...
[simgrid.git] / src / xbt / fifo.c
index f2f95ca..a11b416 100644 (file)
@@ -507,8 +507,14 @@ xbt_fifo_item_t xbt_fifo_getPrevItem(xbt_fifo_item_t i)
 
 /* Module init/exit handling the fifo item mallocator
  * These are internal XBT functions called by xbt_preinit/postexit().
+ * It can be used several times to recreate the mallocator, for example when you switch to MC mode
  */
 void xbt_fifo_preinit(void) {
+  if (item_mallocator != NULL) {
+    /* Already created. I guess we want to switch to MC mode, so kill the previously created mallocator */
+    xbt_mallocator_free(item_mallocator);
+  }
+
   item_mallocator = xbt_mallocator_new(256,
                                        fifo_item_mallocator_new_f,
                                        fifo_item_mallocator_free_f,