ksh93 needs to call whatever is the fastest method for creating a process. To do this, ksh93 calls a wrapper function named spawnveg() that is in the ast library. This function combines fork/exec plus specifies the process group to join or whether to create a new group or not.
This function uses the fastest method available. The iffe (IF Feature Exists) script, which runs at compile time, compares the performance of vfork() and posix_spawn() if both exists and chooses the fastest. Since ksh93 doesn't use threads. I am not aware of any reason that vfork() would not be reliable. David Korn dgk at research.att.com