ContentsIndexPreviousNext

FILE_IO_PROCESSES_MESSAGES*

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.