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(stdout) ;
 | 
				
			||||||
	fflush(stderr) ;
 | 
						fflush(stderr) ;
 | 
				
			||||||
	while ( (child=fork())== -1 ) ;
 | 
						child= fork() ;
 | 
				
			||||||
 | 
						if ( child== - 1) {
 | 
				
			||||||
 | 
							fatal("Cannot fork %s", prog) ;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	if ( child ) {
 | 
						if ( child ) {
 | 
				
			||||||
		/* The parent */
 | 
							/* The parent */
 | 
				
			||||||
		do {
 | 
							do {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue