Module mpi::request
[−]
[src]
Request objects for non-blocking operations
Non-blocking operations such as immediate_send()
return request objects that borrow any
buffers involved in the operation so as to ensure proper access restrictions. In order to
release the borrowed buffers from the request objects, a completion operation such as wait()
or test()
must be used on the request object. To enforce this rule, the request objects
implement a Drop
bomb which will panic!()
when a request object is dropped.
To handle request completion in a RAII style, requests can be wrapped in either WaitGuard
or
CancelGuard
which will follow the respective policy for completing the operation upon being
dropped instead of panic!()
ing.
Unfinished features
- 3.7: Nonblocking mode:
- Completion,
MPI_Waitany()
,MPI_Waitall()
,MPI_Waitsome()
,MPI_Testany()
,MPI_Testall()
,MPI_Testsome()
,MPI_Request_get_status()
- Completion,
- 3.8:
- Cancellation,
MPI_Cancel()
,MPI_Test_cancelled()
- Cancellation,
Modules
traits |
Request object traits |
Structs
CancelGuard |
Guard object that cancels an operation when it is dropped |
PlainRequest |
A request object for an non-blocking operation that holds no references |
ReadRequest |
A request object for a non-blocking operation that holds a reference to an immutable buffer |
ReadWriteRequest |
A request object for a non-blocking operation that holds a reference to a mutable and an immutable buffer |
WaitGuard |
Guard object that waits for the completion of an operation when it is dropped |
WriteRequest |
A request object for a non-blocking operation that holds a reference to a mutable buffer |
Traits
Request |
A request for a non-blocking operation |