SUBMIT2

(UNIX only) This switch affects the operation of and SUBMIT.LIT, and the COMMAND= parameter in printer initialization files. Each of these operations involves the UNIX fork() function to create a child process in order to run a command outside the current process. In the normal case, the new process is a direct child of the current process, which makes the current process responsible for burying the child when it dies. This is often not convenient, and can have either of two undesirable side effects. One is that the current process can get stuck waiting for the child to complete. The other is that if the current process exits before the child exits, the child will become a zombie. .)

SBR=SUBMIT2 causes A-Shell to use a two-level fork(), which results in the new process being a grandchild of the current process. The first child exits immediately, which makes the grandchild an orphan, to be adopted by the init process (pid 1). The end result is that the current process is relieved of its parental responsibilities, eliminating the two problems mentioned above.

In the case of the COMMAND= option in the printer initialization file, a more straightforward benefit is that XCALL SPOOL returns immediately to the program, regardless of how long the process invoked via the COMMAND= statement takes to complete. Without SBR=SUBMIT2, SPOOL.SBR would wait for the child process to complete before returning.