}
if (node.comm_receive) {
+ /* handle last task if any */
+ if (MSG_comm_wait(node.comm_receive, 0) == MSG_OK)
+ task_free(task_received);
MSG_comm_destroy(node.comm_receive);
node.comm_receive = NULL;
}
MSG_task_dsend(task, task_data->answer_to, task_free);
break;
+ default:
+ THROW_IMPOSSIBLE;
}
}
stop = 1;
MSG_comm_destroy(node->comm_receive);
node->comm_receive = NULL;
- task_free(task_sent);
}
else {
msg_task_t task_received = MSG_comm_get_task(node->comm_receive);