Description
The logic in SpawnedProcess has a weakness that may result in the wrapped process not being destroyed if the destroy variable is false and a timeout is specified.
The problem is that the while condition will shortcut the if condition in the catch clause (where destroy is set to true if the timeout is exceeded).