From: hadaq Date: Mon, 1 Nov 2010 15:59:58 +0000 (+0000) Subject: lockinf of signals has been modified X-Git-Tag: v6.0~185 X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=96306e25e0f0a847ce70d3bdebf030c4d62e01e3;p=trbnettools.git lockinf of signals has been modified --- diff --git a/libtrbnet/trbnet.c b/libtrbnet/trbnet.c index a58b7db..b32cfc8 100644 --- a/libtrbnet/trbnet.c +++ b/libtrbnet/trbnet.c @@ -1,4 +1,4 @@ -const char trbnet_version[] = "$Revision: 2.89 $"; +const char trbnet_version[] = "$Revision: 2.90 $"; #include #include @@ -1045,15 +1045,15 @@ static int lockPorts(int masterLock) 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; @@ -1079,12 +1079,12 @@ static int unlockPorts(int masterLock) 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; } @@ -1109,21 +1109,8 @@ int init_ports() 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 */