Inclusion

Understanding Basic Tasking Concepts introduced the distinction between internal and external procedures, and the concept that initiating procedures results in internal or external processes. The differing properties of internal and external processes are referred to in this guide as inclusion properties and are as follows:

  • An internal process must be dependent. Similarly, external processes resulting from initiating library procedures or passed external procedures must be dependent. Only external processes resulting from initiating separate programs can be either dependent or independent. Any attempt to initiate a procedure that is not a separate program as an independent process causes the error “NON - EXTERNAL RUN.” For an explanation of the difference between dependent and independent processes, refer to Dependency.

  • In ALGOL and WFL, internal procedures have access to variables declared globally in the program. These global variables can serve as a medium for interprocess communication if the internal procedure is initiated. For information about this interprocess communication technique, refer to Using Global Objects.

  • Several task attributes inherited by internal processes are not inherited by external processes. These task attributes include LIBRARY, NAME, OPTION, STACKSIZE, and TADS. For a discussion of task attribute inheritance, refer to Using Libraries.