WAIT

Specify wait time for an I/O statement to finish processing

WTSupported in traditional Synergy on Windows
WNSupported in Synergy .NET on Windows
USupported on UNIX
VSupported on OpenVMS
WAIT:wait_spec

Arguments

wait_spec

One of the following identifiers or corresponding ­values: (n)

Q_NOWAIT or 0

Don’t wait if I/O processing can’t be completed (unless system option #35 is set; see below for details).

Q_WAIT or ‑1

Wait until I/O processing is completed.

n

Wait up to n number of seconds for I/O processing to complete.

Discussion

The WAIT qualifier specifies how long to wait for an I/O statement to complete processing.

For files, I/O processing can’t complete if the record is locked. If you don’t specify the WAIT qualifier, Synergy DBL defaults to the setting of the DFLAG subroutine runtime option flag 3. If you do specify WAIT, it overrides the DFLAG setting.

If a record is locked and you specify WAIT:Q_NOWAIT, you’ll get a ­“Record is locked” error ($ERR_LOCKED). If a record is locked and you specify WAIT:Q_WAIT or WAIT:n, program execution is suspended until the record is available or until n seconds have passed. If the record is not available within n number of seconds, you’ll get a “Record is locked” error ($ERR_LOCKED).

For terminals, WAIT:Q_WAIT is the default. If you specify WAIT:Q_WAIT or WAIT:n, the program execution is suspended until input is received from the terminal. If input is not received within n number of seconds, you’ll get a “Terminal input operation” error.

If system option #35 (VAX DIBOL–compatible functionality) is set and you specify a value of zero for wait_spec, it indicates “wait forever” instead of “don’t wait.”

For Windows service runtimes and all .NET runtimes, READS, GETS, and ACCEPT do not honor the WAIT qualifier and will wait forever for a terminating condition (or full buffer in the case of GETS).

See also