I realize I am somewhat late to the discussion, but all this back and forth about sleep times to me really indicates a bigger underlying issue, which is that this kind of busy-wait sleeping is Wrong(tm) on a fundamental level.
Why doesn't the dedicated server simply wake up only when it is needed, using select() or poll() or some equivalent call to sleep until a network message arrives. During the game, select() or poll() combined with some timeout value (e.g. one second) could be used to ensure that we cannot get stuck when clients hang.
I realize I am somewhat late to the discussion, but all this back and forth about sleep times to me really indicates a bigger underlying issue, which is that this kind of busy-wait sleeping is Wrong(tm) on a fundamental level.
Why doesn't the dedicated server simply wake up only when it is needed, using select() or poll() or some equivalent call to sleep until a network message arrives. During the game, select() or poll() combined with some timeout value (e.g. one second) could be used to ensure that we cannot get stuck when clients hang.