- if (getpid()!=1)
- return 1;
- sigfillset(&set);
- sigprocmask(SIG_BLOCK,&set,NULL);
- memset(&status,0,sizeof status);
- while (-ECHILD!=waitid(P_ALL,0,&status,WEXITED));
- return 1;
+ sigfillset(&set);
+ sigprocmask(SIG_BLOCK,&set,NULL);
+
+ do {
+ memset( &status, 0, sizeof( status ) );
+ } while ( waitid( P_ALL, 0, &status, WEXITED ) == 0 );
+ return 0;