Communications Effects

Some objects declared by the parent process can be shared with a dependent process, but not with an independent process.

For example, a parent can declare a task variable and include it in a process initiation statement executed by the parent. For a dependent process, the task variable remains associated with the process for as long as the process exists. After the dependent process terminates, the task variable continues to store the final task attribute values of the dependent process (though later assignments can change these values). The parent can use the task variable to access the task attributes of the process before initiation, while the process is in use, or after the process terminates. However, for an independent process, the task variable ceases to be associated with the process once initiation is complete. Only task attributes assigned to the task variable before initiation have any effect on the independent process.

Similarly, a procedure declared in the parent can be initiated only as a dependent process. A separate program, on the other hand, can be initiated as a dependent or independent process. Thus, an independent process is always an external process.

Like any external process, an independent process is unable to access objects declared globally in the parent. On the other hand, a dependent process, if it is also internal, can access objects declared globally in the parent.

Finally, any parameters passed to an independent process must be passed by value. A dependent process can be passed parameters by name, by reference, or by value.