runningServersForked should be read with runningServerReg held
runningServersForked should be read with runningServerReg held

The current code in `fork()` is racy in the sense that two concurrent go routines might call fork() at the same time, see that runningServersForked is false and perform two forks. Holding runningServerReg makes sure that only one of the goroutines will see runningServersForked set to false.
fvbock/endless,fvbock/endless