self = SIMIX_process_self();
shost = SIMIX_host_self();
- // make sure root is done before own initialization
- SIMIX_mutex_lock(smpi_global->start_stop_mutex);
- while (!smpi_global->root_ready) {
- SIMIX_cond_wait(smpi_global->start_stop_cond,
- smpi_global->start_stop_mutex);
- }
- SIMIX_mutex_unlock(smpi_global->start_stop_mutex);
-
index = smpi_host_index();
request_queue = smpi_global->pending_send_request_queues[index];
smpi_global->sender_processes[index] = self;
- // wait for all nodes to signal initializatin complete
- SIMIX_mutex_lock(smpi_global->start_stop_mutex);
- smpi_global->ready_process_count++;
- if (smpi_global->ready_process_count >= 3 * smpi_global->host_count) {
- SIMIX_cond_broadcast(smpi_global->start_stop_cond);
- }
- while (smpi_global->ready_process_count < 3 * smpi_global->host_count) {
- SIMIX_cond_wait(smpi_global->start_stop_cond,
- smpi_global->start_stop_mutex);
- }
- SIMIX_mutex_unlock(smpi_global->start_stop_mutex);
-
do {
SIMIX_mutex_lock(request_queue_mutex);