XBT_PUBLIC void sg_comm_wait_all(sg_comm_t* comms, size_t count);
XBT_PUBLIC int sg_comm_wait_any_for(sg_comm_t* comms, size_t count, double timeout);
XBT_PUBLIC int sg_comm_wait_any(sg_comm_t* comms, size_t count);
+XBT_PUBLIC void sg_comm_unref(sg_comm_t comm);
SG_END_DECL
/* **************************** Public C interface *************************** */
void sg_comm_detach(sg_comm_t comm, void (*clean_function)(void*))
{
- comm = comm->detach(clean_function);
+ comm->detach(clean_function);
+ comm->unref();
+}
+void sg_comm_unref(sg_comm_t comm)
+{
+ comm->unref();
}
-
int sg_comm_test(sg_comm_t comm)
{
bool finished = comm->test();
void sg_mailbox_put(sg_mailbox_t mailbox, void* payload, long simulated_size_in_bytes)
{
- return mailbox->put(payload, simulated_size_in_bytes);
+ mailbox->put(payload, simulated_size_in_bytes);
}
sg_comm_t sg_mailbox_put_async(sg_mailbox_t mailbox, void* payload, long simulated_size_in_bytes)