Disarming Software Interrupts [ Interprocess Communication:Programmer's Guide ] MPE/iX 5.0 Documentation
Interprocess Communication:Programmer's Guide
Disarming Software Interrupts
It is possible to shut down software interrupt operation and resume
normal WAIT or NOWAIT I/O on the message file. If there was an I/O
posted against the file (that is, a software interrupt FREAD or FWRITE
that has not yet caused a software interrupt and, therefore, has not been
completed by an IOWAIT or IODONTWAIT), you need to use FCONTROL with a
controlcode of 43 to abort it, just as in NOWAIT I/O. If software
interrupts were disabled with FINTSTATE, the I/O completed, and the
interrupt postponed, then FCONTROL with a controlcode of 43 returns a
CCG. This means that the I/O is too far along to be aborted. Interrupts
need to be enabled to let the interrupt handler finish the request. Take
care to ensure that the interrupt handler does not start another I/O, as
this can cause a loop. (See the sample program at the end of this
chapter for a suggested way to handle this.) Using FCONTROL with a
controlcode of 48, but passing a zero instead of the plabel, disarms the
interrupt routines for the file. FCONTROL with a controlcode of 48 will
return a CCL if an I/O is pending.
MPE/iX 5.0 Documentation