How to use MPI_Waitall

The communicator returns Dune::Future for non-blocking communication routines. In some patterns you use many non-blocking class and then call MPI_Waitall which can be more efficient than a loop over MPI_Wait calls (what future.wait() calls internally), see e.g. example. The requests are hidden inside the future and non-accessible at the moment. How could we realize MPI_Waitall?

If the request are accessible, some external function that takes a range of futures, makes a vector of request pointers and then calls MPI_Waitall could be possible.

Edited by Timo Koch