Type Alias uct_completion_t

Source
pub type uct_completion_t = uct_completion;
Expand description

@ingroup UCT_RESOURCE @brief Completion handle.

This structure should be allocated by the user and can be passed to communication primitives. The user must initialize all fields of the structure. If the operation returns UCS_INPROGRESS, this structure will be in use by the transport until the operation completes. When the operation completes, “count” field is decremented by 1, and whenever it reaches 0 - the callback is called.

Notes:

  • The same structure can be passed multiple times to communication functions without the need to wait for completion.
  • If the number of operations is smaller than the initial value of the counter, the callback will not be called at all, so it may be left undefined.
  • status field is required to track the first time the error occurred, and report it via a callback when count reaches 0.

Aliased Type§

struct uct_completion_t {
    pub func: Option<unsafe extern "C" fn(_: *mut uct_completion)>,
    pub count: i32,
    pub status: ucs_status_t,
}

Fields§

§func: Option<unsafe extern "C" fn(_: *mut uct_completion)>

< User callback function

§count: i32

< Completion counter

§status: ucs_status_t

< Completion status, this field must be initialized with UCS_OK before first operation is started.