Run Time

The Run and Stop buttons in the Run Time Frame set the NeatToolsContext.programRunning variable. When this variable is true, a thread is created which initially does "startUp" on all modules, then loops on the "programRunning" value continually calling "update" for each module.

This is implemented as an array of Module objects, which is the abstract base class for all NeatTools modules.

The only complication in this arrangement is adding and removing a module while the program is running. In this case, running is suspended until the operation completes. If a module is added while running, a "startUp" is done on that module before the running is resumed.