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.
LIBRARY
/usr/shlib/libsnatprm.so
SYNOPSIS
#include <sna/snatprmdf.h>
STATUS_RTN snalu62_wait_for_completion(
WAIT_OBJECT_LIST ∗wait_list,
STATUS_VEC status_vec,
TIMEOUT_INFO ∗timeout,
UINT32 ∗status_list
);
Valid Conversation States
HDX: All
FDX: All
SUPPLIED PARAMETERS
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.
timeout
A pointer to a TIMEOUT_INFO structure specifying the type of wait to execute and, optionally, the amount of time to wait.
RETURNED PARAMETERS
status_vec
A pointer to a STATUS_VEC array to receive the completion status information for the snalu62_wait_for_completion verb.
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 as specified by the fields in the TIMEOUT_INFO structure:
•
If blocking (type = SNALU62_C_BLOCKING or type = SNALU62_C_TIMEOUT and expiration <> 0), 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 (type = SNALU62_C_TIMEOUT and expiration = 0), the interface checks the wait object and returns.
Note that, although the interface supports a nonblocking call to this verb, this means simply that the interface executes the checks and returns to caller; the interface does not post completion of 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.
RESTRICTIONS
None
RETURN VALUES
SNALU62_S_OKnormal 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
ERRORS
None
RELATED INFORMATION
Functions: snalu62_get_attributes
Manuals: Compaq SNA APPC/LU6.2 Programming Interface for Tru64 UNIX Programming and IBM’s Systems Network Architecture Transaction Programmer’s Reference Manual for LU Type 6.2.