- Colls::iallgatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, comm, &request);
- MPI_Request* requests = request->get_nbc_requests();
- int count = request->get_nbc_requests_size();
- Request::waitall(count, requests, MPI_STATUS_IGNORE);
- for (int other = 0; other < count; other++) {
- Request::unref(&requests[other]);
- }
- delete[] requests;
+ colls::iallgatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs, recvtype, comm, &request, 0);
+ auto requests = request->get_nbc_requests();
+ Request::waitall(requests.size(), requests.data(), MPI_STATUS_IGNORE);
+ for(auto& req: requests)
+ Request::unref(&req);