summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathis Beer <Mathis.Beer@funkwerk-itk.com>2020-03-11 14:19:47 +0100
committerMathis Beer <Mathis.Beer@funkwerk-itk.com>2020-03-12 06:43:33 +0100
commit796b30bebf5a74ac73ad506da8576e3445090131 (patch)
tree17742911ed3caf2c42b9c01fb4a1228a6230a2c5
parent70d26ec15cd202689659d0d4977372b726afc4fc (diff)
downloadlibfaketime-796b30bebf5a74ac73ad506da8576e3445090131.tar.gz
use pthread_sigmask instead of sigprocmask
pthread_sigmask is the one meant for threaded programs.
-rw-r--r--src/libfaketime.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/libfaketime.c b/src/libfaketime.c
index 1a498d8..d9f1fc0 100644
--- a/src/libfaketime.c
+++ b/src/libfaketime.c
@@ -2637,7 +2637,7 @@ static void pthread_cleanup_mutex_lock(void *data)
{
struct LockedState *state = data;
pthread_mutex_unlock(&state->mutex);
- sigprocmask(SIG_SETMASK, &state->original_mask, NULL);
+ pthread_sigmask(SIG_SETMASK, &state->original_mask, NULL);
}
#endif
@@ -2672,8 +2672,7 @@ int fake_clock_gettime(clockid_t clk_id, struct timespec *tp)
// block all signals while locked. prevents deadlocks if signal interrupts in in mid-operation.
sigset_t all_signals;
sigfillset(&all_signals);
- sigprocmask(SIG_SETMASK, &all_signals, &state.original_mask);
-
+ pthread_sigmask(SIG_SETMASK, &all_signals, &state.original_mask);
pthread_mutex_lock(&state.mutex);
pthread_cleanup_push(pthread_cleanup_mutex_lock, &state);
#endif