- if(requests[i] != MPI_REQUEST_NULL && requests[i]->complete) {
- index = i;
- SIMIX_communication_destroy(requests[index]->pair); // always succeeds (but cleans the simix layer)
- break;
- }
- }
- 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];
+ if(requests[i] != MPI_REQUEST_NULL) {
+ print_request(" ", requests[i]);
+ xbt_dynar_push(comms, &requests[i]->action);
+ map[size] = i;
+ size++;