request->send = 0;
request->recv = 0;
#endif
+ if (flags & SEND) smpi_datatype_unuse(datatype);
+
return request;
}
mailbox = smpi_process_mailbox();
// we make a copy here, as the size is modified by simix, and we may reuse the request in another receive later
request->real_size=request->size;
+ smpi_datatype_use(request->old_type);
request->action = simcall_comm_irecv(mailbox, request->buf, &request->real_size, &match_recv, request);
if (request->action)request->action->comm.refcount++;
} else {
}
// we make a copy here, as the size is modified by simix, and we may reuse the request in another receive later
request->real_size=request->size;
+ smpi_datatype_use(request->old_type);
request->action =
simcall_comm_isend(mailbox, request->size, -1.0,
}
if(req->detached == 0) free(req->buf);
}
-
+ smpi_datatype_unuse(datatype);
if(req->flags & NON_PERSISTENT) {
simcall_comm_wait((*request)->action, -1.0);
finish_wait(request, status);
}
+
// FIXME for a detached send, finish_wait is not called:
}