mirror of
https://review.haiku-os.org/buildtools
synced 2024-11-23 07:18:49 +01:00
* fixed bug when waiting for sub-process related to handling of multiple
children (as created by piped commands). This caused the compilation of AboutHaiku to fail on Zeta. git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@18503 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
c8cb9d20d2
commit
c4d9c2df99
@ -272,29 +272,29 @@ execwait()
|
||||
if( !cmdsrunning )
|
||||
return 0;
|
||||
|
||||
/* Pick up process pid and status */
|
||||
do
|
||||
{
|
||||
/* Pick up process pid and status */
|
||||
|
||||
while( ( w = wait( &status ) ) == -1 && errno == EINTR )
|
||||
while( ( w = wait( &status ) ) == -1 && errno == EINTR )
|
||||
;
|
||||
|
||||
if( w == -1 )
|
||||
{
|
||||
printf( "child process(es) lost!\n" );
|
||||
perror("wait");
|
||||
exit( EXITBAD );
|
||||
}
|
||||
if( w == -1 )
|
||||
{
|
||||
printf( "child process(es) lost!\n" );
|
||||
perror("wait");
|
||||
exit( EXITBAD );
|
||||
}
|
||||
|
||||
/* Find the process in the cmdtab. */
|
||||
/* Find the process in the cmdtab. */
|
||||
|
||||
for( i = 0; i < MAXJOBS; i++ )
|
||||
if( w == cmdtab[ i ].pid )
|
||||
break;
|
||||
for( i = 0; i < MAXJOBS; i++ )
|
||||
if( w == cmdtab[ i ].pid )
|
||||
break;
|
||||
|
||||
if( i == MAXJOBS )
|
||||
{
|
||||
printf( "waif child found!\n" );
|
||||
exit( EXITBAD );
|
||||
}
|
||||
if( i == MAXJOBS )
|
||||
printf( "jam: waif child process %ld found, ignoring it!\n", w );
|
||||
} while( i == MAXJOBS );
|
||||
|
||||
# ifdef USE_EXECNT
|
||||
/* Clear the temp file */
|
||||
|
Loading…
Reference in New Issue
Block a user