Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Ensure that the mallocator are really inactive when running MC
[simgrid.git] / src / xbt / fifo.c
index 7db645e..7a425f6 100644 (file)
@@ -13,7 +13,7 @@
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_fifo, xbt, "FIFO");
 
 static void *fifo_item_mallocator_new_f(void);
-static void fifo_item_mallocator_free_f(void *item);
+#define fifo_item_mallocator_free_f xbt_free_f
 static void fifo_item_mallocator_reset_f(void *item);
 
 static xbt_mallocator_t item_mallocator = NULL;
@@ -375,11 +375,6 @@ static void *fifo_item_mallocator_new_f(void)
   return xbt_new(s_xbt_fifo_item_t, 1);
 }
 
-static void fifo_item_mallocator_free_f(void *item)
-{
-  xbt_free(item);
-}
-
 static void fifo_item_mallocator_reset_f(void *item)
 {
   /* memset to zero like calloc */
@@ -389,7 +384,7 @@ static void fifo_item_mallocator_reset_f(void *item)
 /** Constructor
  * \return a new bucket
  */
-xbt_fifo_item_t xbt_fifo_new_item(void)
+XBT_INLINE xbt_fifo_item_t xbt_fifo_new_item(void)
 {
   return xbt_mallocator_get(item_mallocator);
 }
@@ -427,7 +422,7 @@ XBT_INLINE void *xbt_fifo_get_item_content(xbt_fifo_item_t i)
  *
  * Free the bucket but does not modifies the object (if any) that was stored in it.
  */
-void xbt_fifo_free_item(xbt_fifo_item_t b)
+XBT_INLINE void xbt_fifo_free_item(xbt_fifo_item_t b)
 {
   xbt_mallocator_release(item_mallocator, b);
   return;
@@ -455,8 +450,10 @@ XBT_INLINE int xbt_fifo_size(xbt_fifo_t f)
 /**
  * \param l a list
  * \return the head of \a l.
+ *
+ * Returns NULL if the list is empty.
  */
-xbt_fifo_item_t xbt_fifo_get_first_item(xbt_fifo_t l)
+XBT_INLINE xbt_fifo_item_t xbt_fifo_get_first_item(xbt_fifo_t l)
 {
   return l->head;
 }
@@ -464,8 +461,10 @@ xbt_fifo_item_t xbt_fifo_get_first_item(xbt_fifo_t l)
 /**
  * \param l a list
  * \return the tail of \a l.
+ *
+ * Returns NULL if the list is empty.
  */
-xbt_fifo_item_t xbt_fifo_get_last_item(xbt_fifo_t l)
+XBT_INLINE xbt_fifo_item_t xbt_fifo_get_last_item(xbt_fifo_t l)
 {
   return l->tail;
 }
@@ -481,6 +480,8 @@ XBT_INLINE xbt_fifo_item_t xbt_fifo_getFirstItem(xbt_fifo_t l)
 /**
  * \param i a bucket
  * \return the bucket that comes next
+ *
+ * Returns NULL if \a i is the tail of the list.
  */
 XBT_INLINE xbt_fifo_item_t xbt_fifo_get_next_item(xbt_fifo_item_t i)
 {
@@ -500,6 +501,8 @@ xbt_fifo_item_t xbt_fifo_getNextItem(xbt_fifo_item_t i)
 /**
  * \param i a bucket
  * \return the bucket that is just before \a i.
+ *
+ * Returns NULL if \a i is the head of the list.
  */
 XBT_INLINE xbt_fifo_item_t xbt_fifo_get_prev_item(xbt_fifo_item_t i)
 {
@@ -522,11 +525,6 @@ xbt_fifo_item_t xbt_fifo_getPrevItem(xbt_fifo_item_t i)
  */
 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(65536,
                                        fifo_item_mallocator_new_f,
                                        fifo_item_mallocator_free_f,