Looking at the code shows:
signal_handler() {
sig_list[sig_num].tripped = 1;
}
why not accumulating the arrived signals??
signal_handler() {
...
sig_list[sig_num].tripped++;
...}
then sigcheck() could then do:
for (i = 1; i < NSIG; i++) {
while (sig_list[i].tripped) {
...
sig_list[i].tripped--;
...
}
}
instead of
for (i = 1; i < NSIG; i++) {
if (sig_list[i].tripped) {
...
sig_list[i].tripped = 0;
...
}
}
Michael
-- __________________________________________________________ **** ___ _ _ ___ _ ****** | __) | \/ | | ) | | Michael Scharf ******** | _) | | | -< | |_ Tel: +49 6221 387 305 Fax: 517 * **** |___) |_||_| |___) |___) EMail: scharf@EMBL-Heidelberg.de **** __________________________________________________________