User`s guide
38 DC 900-1339H
FMP Programmer’s Guide
Note
For most applications, the FMP protocol requires Raw read and
write requests to specify 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
function, 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 FMP.