summaryrefslogtreecommitdiffstats
path: root/signal.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-10-27 06:54:47 -0700
committerKaz Kylheku <kaz@kylheku.com>2015-10-27 06:54:47 -0700
commit58c1299e112e10bcb37ae888f3dbc6d3aa211eeb (patch)
tree4e2d08f73a97af2b6b61635233195c5fcd8f4b64 /signal.c
parenta7f752540226e033c061be107a623a0563f68031 (diff)
downloadtxr-58c1299e112e10bcb37ae888f3dbc6d3aa211eeb.tar.gz
txr-58c1299e112e10bcb37ae888f3dbc6d3aa211eeb.tar.bz2
txr-58c1299e112e10bcb37ae888f3dbc6d3aa211eeb.zip
Remove no-longer-needed bulk bit operations.
* signal.c (mem_set_bits, mem_clr_bits): Static functions removed. (sig_mask): Operate on set member of small_sigset_t directly rather than as an array of bytes.
Diffstat (limited to 'signal.c')
-rw-r--r--signal.c20
1 files changed, 3 insertions, 17 deletions
diff --git a/signal.c b/signal.c
index 16928ab5..7d8003b1 100644
--- a/signal.c
+++ b/signal.c
@@ -337,18 +337,6 @@ val sig_check(void)
return t;
}
-static void mem_set_bits(mem_t *target, const mem_t *bits, size_t size)
-{
- while (size--)
- *target++ |= *bits++;
-}
-
-static void mem_clr_bits(mem_t *target, const mem_t *bits, size_t size)
-{
- while (size--)
- *target++ &= ~*bits++;
-}
-
int sig_mask(int how, const small_sigset_t *set, small_sigset_t *oldset)
{
small_sigset_t newset;
@@ -360,20 +348,18 @@ int sig_mask(int how, const small_sigset_t *set, small_sigset_t *oldset)
break;
case SIG_BLOCK:
pnew = &newset;
- newset = sig_blocked_cache;
- mem_set_bits(coerce(mem_t *, &newset), coerce(const mem_t *, set), sizeof newset);
+ newset.set = sig_blocked_cache.set | set->set;
break;
case SIG_UNBLOCK:
pnew = &newset;
- newset = sig_blocked_cache;
- mem_clr_bits(coerce(mem_t *, &newset), coerce(const mem_t *, set), sizeof newset);
+ newset.set = sig_blocked_cache.set & ~set->set;
break;
default:
errno = EINVAL;
return -1;
}
- if (memcmp(&sig_blocked_cache, pnew, sizeof *pnew) != 0) {
+ if (sig_blocked_cache.set != pnew->set) {
static sigset_t blank;
sigset_t real_newset = blank, real_oldset;
sig_blocked_cache = *pnew;