return request;
}
+static void myfree(void *d) {
+ xbt_backtrace_display_current();
+ XBT_INFO("myfree called on %p",d);
+ free(d);
+}
+
void smpi_mpi_start(MPI_Request request)
{
smx_rdv_t mailbox;
detached = 1;
request->buf = malloc(request->size);
memcpy(request->buf,oldbuf,request->size);
- XBT_DEBUG("Send request %p is detached; buf %p copied into %p",request,oldbuf,request->buf);
+ XBT_INFO("Send request %p is detached; buf %p copied into %p",request,oldbuf,request->buf);
} else {
XBT_DEBUG("Send request %p is not detached (buf: %p)",request,request->buf);
}
request->action =
SIMIX_req_comm_isend(mailbox, request->size, -1.0,
- request->buf, request->size, &match_send, request,
+ request->buf, request->size,
+ &match_send,myfree, // cleanup using a simple free() FIXME: that may not be sufficient
+ request,
// detach if msg size < eager/rdv switch limit
detached);