Flag indicating how the program runs in relation
to the requester, and whether execution is under conditions for debugging.
The values of this field are shown in the following list:
- EXEC_SYNC
Execution is synchronous to the parent process. The termination code and
result code are stored in the RESULTCODES
structure pointed to by pRes.
- EXEC_ASYNC
Execution is asynchronous to the parent process. When the child process
ends, its result code is discarded. The process ID is stored in the codeTerminate
field of the RESULTCODES structure
pointed to by pRes.
- EXEC_ASYNCRESULT
Execution is asynchronous to the parent process. When the child process
ends, its result code is saved for examination by a DosWaitChild
request. The process ID is stored in the codeTerminate field
of the RESULTCODES structure pointed
to by pRes.
- EXEC_TRACE
Execution is the same as if EXEC_ASYNCRESULT were specified for execFlag.
Debugging conditions are present for the child process.
- EXEC_BACKGROUND
Execution is asynchronous to and detached from the parent-process session.
When the detached process starts, it is not affected by the ending of the
parent process. The detached process is treated as an orphan of the parent
process.
A program executed with this option runs in the background, and should not
require any input from the keyboard or output to the screen other than VioPopups.
It should not issue any console I/O calls (VIO, KBD, or MOU functions).
- EXEC_LOAD
The program is loaded into storage and made ready to execute, but is not
executed until the session manager dispatches the threads belonging to the
process.
- EXEC_ASYNCRESULTDB
Execution is the same as if EXEC_ASYNCRESULT were specified for execFlag,
with the addition of debugging conditions being present for the child process
and any of its descendants. In this way, it is possible to debug even detached
and synchronous processes.
Some memory is consumed for uncollected result codes. Issue DosWaitChild
to release this memory. If result codes are not collected, then EXEC_SYNC
or EXEC_ASYNC should be used for execFlag.