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)
if (!comm)
return NULL;
- return (m_task_t) SIMIX_req_comm_get_data(comm);
+ return (m_task_t) SIMIX_req_comm_get_src_data(comm);
}
int
/* Try to receive it by calling SIMIX network layer */
TRY {
- comm = SIMIX_req_comm_irecv(mailbox, task, NULL);
+ comm = SIMIX_req_comm_irecv(mailbox, task, NULL, NULL, NULL);
SIMIX_req_comm_wait(comm, timeout);
+ SIMIX_req_comm_destroy(comm);
DEBUG2("Got task %s from %p",(*task)->name,mailbox);
(*task)->simdata->refcount--;
}
ret = MSG_TIMEOUT;
break;
default:
+ xbt_backtrace_display(&e);
xbt_die(bprintf("Unhandled SIMIX network exception: %s", e.msg));
}
xbt_ex_free(e);
/* Try to send it by calling SIMIX network layer */
TRY {
t_simdata->comm = SIMIX_req_comm_isend(mailbox, t_simdata->message_size,
- t_simdata->rate, task, sizeof(void *), task);
+ t_simdata->rate, task, sizeof(void *), NULL, 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) {