-const char trbnet_version[] = "$Revision: 2.89 $";
+const char trbnet_version[] = "$Revision: 2.90 $";
#include <stdlib.h>
#include <signal.h>
return 0;
}
+ /* Block Signals */
+ if (sigprocmask(SIG_BLOCK, &blockSet, &blockSetOld) == -1) return -1;
+
/* Wait for semaphore and lock it */
if (semop(semid, &sops, 1) == -1) {
trb_errno = TRB_SEMAPHORE;
return -1;
}
-
- /* Block Signals */
- sigprocmask(SIG_BLOCK, &blockSet, &blockSetOld);
-
+
/* Get FifoToggleBit-Status, needed by read32_from_FPGA ... */
fifoToggleBit = readPC() & FIFO_TOGGLE_BIT;
trb_errno = TRB_SEMAPHORE;
return -1;
}
-
+
+ if (masterLock != 0) master_lock = 0;
+
/* Unblock Signals */
- sigprocmask(SIG_SETMASK, &blockSetOld, NULL);
+ if (sigprocmask(SIG_SETMASK, &blockSetOld, NULL) == -1) return -1;
- if (masterLock != 0) master_lock = 0;
-
return 0;
}
int memfd;
uint32_t *mem = NULL;
- /* Set signal mask for blocking */
- sigemptyset(&blockSet);
- sigaddset(&blockSet, SIGHUP);
- sigaddset(&blockSet, SIGINT);
- sigaddset(&blockSet, SIGQUIT);
- sigaddset(&blockSet, SIGALRM);
- sigaddset(&blockSet, SIGTERM);
- sigaddset(&blockSet, SIGUSR1);
- sigaddset(&blockSet, SIGUSR2);
- sigaddset(&blockSet, SIGCONT);
- sigaddset(&blockSet, SIGSTOP);
- sigaddset(&blockSet, SIGTSTP);
- sigaddset(&blockSet, SIGTTIN);
- sigaddset(&blockSet, SIGTTOU);
- sigaddset(&blockSet, SIGPIPE);
+ /* Set signal mask to block ALL signals */
+ sigfillset(&blockSet);
sigemptyset(&blockSetOld);
/* Get / Create semaphore */