diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2015-10-27 06:54:47 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2015-10-27 06:54:47 -0700 |
commit | 58c1299e112e10bcb37ae888f3dbc6d3aa211eeb (patch) | |
tree | 4e2d08f73a97af2b6b61635233195c5fcd8f4b64 /signal.c | |
parent | a7f752540226e033c061be107a623a0563f68031 (diff) | |
download | txr-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.c | 20 |
1 files changed, 3 insertions, 17 deletions
@@ -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; |