


This variable can be used to control whether the runtime processes system
messages while performing file I/O operations. When it is set to "1" (on, true,
yes), the runtime processes system messages while doing file I/O operations.
This was the default behavior prior to Version 3.2. Note that the processing of system messages during file I/O
should only be enabled under special conditions, as described below.
To understand when it is appropriate to set this variable, it is important to
be familiar with system messages and how the ACUCOBOL-GT runtime and your program respond to them. For the
purposes of this discussion, system messages are the mechanism used by graphical
systems, such as Windows, to communicate with your program. They are what the
operating system uses to communicate user and system activity to the program.
They are similar to ACUCOBOL-GT's events. Prior to Version 3.2, the runtime automatically processed system events
during file operations. This allowed the user to manipulate an application window
(for example, minimizing it) while file I/O operations were performed. If the
application suspends the processing of system messages, the system appears to
the user to be frozen.
Starting with Version 3.2, this feature was turned off by default. This is
because the processing of messages outside of an ACCEPT statement can cause flaws
in a program that uses multithreading or modeless windows. It also creates a
state where event procedures can be called at unexpected times. In addition,
the controls of the application are not actually functional, though they appear
to be working to the user.
Generally speaking, setting this variable is useful only when the application
does not use multithreading, modeless windows, or event procedures.
Note that the proper way to process system messages while performing other
operations is to start a second thread that performs an ACCEPT statement while the
main thread continues with the work. This allows the system to process
messages under control of an ACCEPT, which provides a well-defined point in your
program from which event procedures can be called.