How are you handling timeouts and forks? The following to snippets have different results:
#include <stdio.h> int main() { while(1){ fork(); } return 1; }
#include <stdio.h> int main() { while(1){ } return 1; }
The second snippet times out properly, but the first does not.