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

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