- if(index == MPI_UNDEFINED) {
- // Otherwise, wait for a request to complete
- comms = xbt_dynar_new(sizeof(smx_comm_t), NULL);
- map = xbt_new(int, count);
- size = 0;
- DEBUG0("Wait for one of");
- for(i = 0; i < count; i++) {
- if(requests[i] != MPI_REQUEST_NULL && requests[i]->complete == 0) {
- print_request(" ", requests[i]);
- xbt_dynar_push(comms, &requests[i]->pair);
- map[size] = i;
- size++;
- }
- }
- if(size > 0) {
- index = SIMIX_network_waitany(comms);
- index = map[index];
- finish_wait(&requests[index], status);
- }
- xbt_free(map);
- xbt_dynar_free(&comms);
+ if(size > 0) {
+ index = SIMIX_req_comm_waitany(comms);
+ index = map[index];
+ finish_wait(&requests[index], status);