simdata->message_size = message_size;
simdata->rate = -1.0;
simdata->priority = 1.0;
- simdata->refcount = 1;
+ simdata->isused = 0;
simdata->sender = NULL;
simdata->receiver = NULL;
simdata->compute = NULL;
xbt_assert0((task != NULL), "Invalid parameter");
/* why? if somebody is using, then you can't free! ok... but will return MSG_OK? when this task will be destroyed? isn't the user code wrong? */
- task->simdata->refcount--;
- if (task->simdata->refcount > 0)
+ if (task->simdata->isused > 0) {
+ XBT_DEBUG("Cannot destroy task %p since somebody is using it", task);
return MSG_OK;
+ }
#ifdef HAVE_TRACING
TRACE_msg_task_destroy(task);
#endif
{
xbt_assert0((task != NULL)
&& (task->simdata != NULL), "Invalid parameter");
- DEBUG1("calling SIMIX_req_communication_get_remains(%p)",
+ XBT_DEBUG("calling SIMIX_req_communication_get_remains(%p)",
task->simdata->comm);
return SIMIX_req_comm_get_remains(task->simdata->comm);
}
{
xbt_assert0((task != NULL)
&& (task->simdata != NULL), "Invalid parameter");
- DEBUG1("calling SIMIX_req_communication_is_latency_bounded(%p)",
+ XBT_DEBUG("calling SIMIX_req_communication_is_latency_bounded(%p)",
task->simdata->comm);
return SIMIX_req_comm_is_latency_bounded(task->simdata->comm);
}