snalu62_wait_for_completion(3) — Subroutines
Name
snalu62_wait_for_completion − Waits for posting to occur on one or more nonblocking operations specified in the list of wait objects.
FORMAT
STATUS_RTN snalu62_wait_for_completion(
WAIT_OBJECT_LIST ∗wait_list,
STATUS_VEC status_vec,
TIMEO ∗timeout,
UINT32 ∗status_list
);
Arguments
wait_list
A pointer to a WAIT_OBJECT_LIST structure specifying a list of wait objects that were specified in previous non-blocking verb calls.
status_vec
A pointer to a STATUS_VEC array to receive the completion status information for the snalu62_wait_for_completion verb.
timeout
A pointer to a TIMEO structure specifying the type of waiting to be performed and optionally the amount of time to wait.
status_list
A pointer to a UINT32 array to receive the corresponding status of the wait objects specified in the wait_list parameter. There is one status for each wait object in the wait object list. Each status can have one of the following values:
•SNALU62_C_NOT_POSTED
The wait object has not yet been posted. The verb represented by the wait object has not yet completed; the verb’s status vector is not valid.
•SNALU62_C_POSTED
The wait object has been posted. The verb represented by the wait object has completed; the verb’s status vector is valid.
•SNALU62_C_UNKNOWN
The wait object is not identifiable. No verb was ever called with this wait object or the wait object has been corrupted by the program. If all wait objects in the wait_list parameter share this code, the interface returns the SNALU62_S_NOWAITOBJ status.
Description
Use this verb to request the interface to check a specified list of wait objects associated with nonblocking verbs and return a corresponding list indicating the status of the verbs (that is, whether they have been posted). This test operation can itself be blocking or nonblocking. If blocking, this verb can be requested to block for a certain period of time or to block indefinitely until one of the nonblocking verbs completes. If nonblocking, the interface performs the wait object check and returns. Note that, although the interface supports a nonblocking call to this verb, this means simply that the interface performs the check and returns to caller; the interface does not post a call to this verb.
When using most interface verbs, a transaction program has the option of specifying that the verb be nonblocking. A call to a nonblocking verb returns to the calling program immediately. When using nonblocking verbs, a program can choose whether it wants notification when the requested operation completes. If the program requests notification, the interface provides this notification through an operation known as posting. When the interface posts completion of a verb, it modifies a structure known as the wait object. The program supplies a unique copy of this structure each time it makes a nonblocking call to the verb.
Return Values
SNALU62_S_OK
normal successful completion
SNALU62_S_CONVCANC
conversation canceled
SNALU62_S_INVTIMEO
invalid timeout value
SNALU62_S_NOWAITOBJ
all wait objects unknown
SNALU62_S_PARERR
parameter error, function-name
SNALU62_S_TIMEXP
timer expired
SNALU62_S_UNSUC
verb did not execute successfully