Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Another useless and leaky xbt_strdup
[simgrid.git] / src / msg / msg_mailbox.c
index c4fb1ea..ab9e1ec 100644 (file)
@@ -13,7 +13,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(msg_mailbox, msg,
 
 msg_mailbox_t MSG_mailbox_new(const char *alias)
 {
-  return SIMIX_req_rdv_create(alias ? xbt_strdup(alias) : NULL);
+  return SIMIX_req_rdv_create(alias);
 }
 
 void MSG_mailbox_free(void *mailbox)
@@ -97,6 +97,7 @@ MSG_mailbox_get_task_ext(msg_mailbox_t mailbox, m_task_t * task,
   TRY {
     comm = SIMIX_req_comm_irecv(mailbox, task, NULL);
     SIMIX_req_comm_wait(comm, timeout);
+    SIMIX_req_comm_destroy(comm);
     DEBUG2("Got task %s from %p",(*task)->name,mailbox);
     (*task)->simdata->refcount--;
   }
@@ -162,7 +163,11 @@ MSG_mailbox_put_with_timeout(msg_mailbox_t mailbox, m_task_t task,
   TRY {
     t_simdata->comm = SIMIX_req_comm_isend(mailbox, t_simdata->message_size,
                        t_simdata->rate, task, sizeof(void *), task);
+#ifdef HAVE_TRACING
+    SIMIX_req_set_category(t_simdata->comm, task->category);
+#endif
     SIMIX_req_comm_wait(t_simdata->comm, timeout);
+    SIMIX_req_comm_destroy(t_simdata->comm);
   }
 
   CATCH(e) {