User`s guide

46 DC 900-1317J
ADCCP NRM Programmer’s Guide
exchange, Normal and Raw operation can be mixed. The client application session
should be configured for Normal operation (allowing DLI to handle some of the head-
ers), but the read and write requests can use Raw operation by including the optional
arguments structure (Section 3.3) containing the protocol-specific information.
3.1.3 Blocking versus Non-blocking I/O
Note
Earlier Freeway releases used the term “synchronous” for blocking
I/O and “asynchronous” for non-blocking I/O. Some parameter
names reflect the previous terminology.
Non-blocking I/O applications are useful when doing I/O to multiple channels with a
single process where it is not possible to “block” on any one channel waiting for I/O
completion. Blocking I/O applications are useful when it is reasonable to have the call-
ing process wait for I/O completion.
In the Freeway environment, the term blocking I/O indicates that the dlOpen, dlClose,
dlRead and dlWrite functions do not return until the I/O is complete. For non-blocking
I/O, these functions might return after the I/O has been queued at the client, but before
the transfer to Freeway is complete. The client must handle I/O completions at the soft-
ware interrupt level in the completion handler established by the
dlInit or dlOpen func-
tion, or by periodic use of
dlPoll to query the I/O completion status.
The asyncIO DLI configuration parameter specifies whether an application session uses
blocking or non-blocking I/O. The
alwaysQIO DLI configuration parameter further
qualifies the operation of non-blocking I/O activity. Refer to the Freeway Data Link
Interface Reference Guide for more information.
The effects on different DLI functions, resulting from the choice of blocking or non-
blocking I/O, are explained in the Freeway Data Link Interface Reference Guide and
throughout this chapter as they relate to ADCCP NRM.