Potential Problem Situations
Potential Problem Situations
A cycle module having exported subprocedures introduces potential scenarios where the cycle-main procedure initialization is performed at an unexpected time, with the effect that has on files, data area locks, and global data then leading to errors. An exported subprocedure can be called first in the module, from a procedure outside the module, before the cycle-main procedure is called. If the cycle-main procedure is then called, it will initialize at that time.
- If module initialization occurs because a subprocedure is the first procedure to be called, and cycle-main procedure initialization occurs later, errors can occur if files are already open or data areas are already locked.
- If a subprocedure calls the cycle-main procedure, global data may or may not be reinitialized during the call, depending on the way the main procedure ended the last time it was called. If the subprocedure is using any global data, this can cause unexpected results.
- If the cycle-main procedure was last called and ended and implicitly closed the files and unlocked the data areas, and an exported subroutine is then called from outside the module, errors can occur if it expects those files to be open or data areas to be locked.