struct sigaction siggy;
siggy.sa_handler = sigchld_handler;
siggy.sa_mask = ss; /* implicitly blocks the origin signal */
- siggy.sa_flags = 0; /* don't need anything */
+ siggy.sa_flags = SA_RESTART; /* don't need anything */
sigaction ( SIGCHLD, &siggy, NULL );
if ( ret == -1 ) {
pnd_log ( pndn_error, "ERROR! select(2) failed with: %s\n", strerror ( errno ) );
- break;
+ continue; // retry!
}
for ( i = 0; i < 2; i++ ) {
int status;
wait ( &status );
+ pnd_log ( pndn_rem, " SIGCHLD done ]---\n" );
+
return;
}