From 96306e25e0f0a847ce70d3bdebf030c4d62e01e3 Mon Sep 17 00:00:00 2001 From: hadaq Date: Mon, 1 Nov 2010 15:59:58 +0000 Subject: [PATCH] lockinf of signals has been modified --- libtrbnet/trbnet.c | 35 +++++++++++------------------------ 1 file changed, 11 insertions(+), 24 deletions(-) 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 */ -- 2.43.0