Don't retry fork() in a loop.
If fork() fails, then report a fatal error. Don't spin the cpu retrying fork() until it succeeds. It can fail when we reach a limit on the number of processes. Spinning on the cpu would slow down other processes when we want them to exit. This would get bad if we had a parallel build with multiple ack processes spinning.
This commit is contained in:
		
							parent
							
								
									e617f42503
								
							
						
					
					
						commit
						fafc8a0b8a
					
				
					 1 changed files with 4 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -80,7 +80,10 @@ static int run_exec(trf *phase, const char *prog) {
 | 
			
		|||
 | 
			
		||||
	fflush(stdout) ;
 | 
			
		||||
	fflush(stderr) ;
 | 
			
		||||
	while ( (child=fork())== -1 ) ;
 | 
			
		||||
	child= fork() ;
 | 
			
		||||
	if ( child== - 1) {
 | 
			
		||||
		fatal("Cannot fork %s", prog) ;
 | 
			
		||||
	}
 | 
			
		||||
	if ( child ) {
 | 
			
		||||
		/* The parent */
 | 
			
		||||
		do {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue