simdata->data = data;
simdata->last_errno = MSG_OK;
+ int future_simix_process_pid = SIMIX_process_get_maxpid();
+ TRACE_msg_process_create(name, future_simix_process_pid, host);
+
/* Let's create the process: SIMIX may decide to start it right now,
* even before returning the flow control to us */
- simcall_process_create(&process, name, code, simdata, sg_host_name(host), -1,
+ simcall_process_create(&process, name, code, simdata, sg_host_name(host), -1,
argc, argv, properties,0);
-
- TRACE_msg_process_create(name, SIMIX_process_get_PID(process), host);
+ xbt_assert(future_simix_process_pid == SIMIX_process_get_PID(process));
if (!process) {
/* Undo everything we have just changed */
/* get from SIMIX the MSG process data, and then the user data */
simdata_process_t simdata = simcall_process_get_data(process);
- return simdata->data;
+ if (simdata)
+ return simdata->data;
+ else
+ return NULL;
}
/** \ingroup m_process_management