Initiation of an Asynchronous Process

Initiation of an asynchronous process consists of setting up a separate stack for the process, passing any parameters (call-by-name or call-by-value), and beginning the execution of the procedure. The initiating program continues execution, and both the initiating program and the initiated procedure run in parallel.

If the specified procedure is a typed procedure, the return value is discarded.

If the procedure identifier is a system-supplied process, such as an intrinsic, the library GENERALSUPPORT must be declared using a library entry point specification. The procedure identifier must be declared in the program or the syntax error PROCEDURE MUST BE USER DECLARED results.

The actual parameter part must agree in number and type with the formal parameter part in the declaration of the procedure; otherwise, a run-time error occurs.

The task designator associates a task with the process at initiation; the values of the task attributes of that task, such as COREESTIMATE, STACKSIZE, and DECLAREDPRIORITY, can be used to control execution of the process. For information about assigning values to task attributes, refer to Task Assignment, <arithmetic task attribute> under Arithmetic Assignment, and <Boolean task attribute> under Boolean Assignment. Many task attributes can be interrogated while the process is running.