- msg_process_data_t process_data = (msg_process_data_t)msg_proc->data;
- //free the process data
- if (process_data) {
- //Remove the process from its vm
- if (process_data->current_vm) {
- int pos = xbt_dynar_search(process_data->current_vm->processes,&smx_proc);
- xbt_dynar_remove_at(process_data->current_vm->processes,pos, NULL);
- }
- //Free the data if a function was provided
- if (process_data->data && msg_global->process_data_cleanup) {
- msg_global->process_data_cleanup(process_data->data);
- }
- xbt_free(process_data);
+ // free the data if a function was provided
+ if (msg_proc->data && msg_global->process_data_cleanup) {
+ msg_global->process_data_cleanup(msg_proc->data);
+ }
+
+ // remove the process from its virtual machine
+ if (msg_proc->vm) {
+ int pos = xbt_dynar_search(msg_proc->vm->processes,&smx_proc);
+ xbt_dynar_remove_at(msg_proc->vm->processes,pos, NULL);