diff options
Diffstat (limited to 'linux/preempt.c')
-rw-r--r-- | linux/preempt.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/linux/preempt.c b/linux/preempt.c index aa092c1d..72eceed3 100644 --- a/linux/preempt.c +++ b/linux/preempt.c @@ -15,7 +15,16 @@ * correct to instead guarantee mutual exclusion for the critical sections. */ -static pthread_mutex_t preempt_lock = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; +static pthread_mutex_t preempt_lock; + +__attribute__((constructor)) +static void preempt_init(void) { + pthread_mutexattr_t attr; + pthread_mutexattr_init(&attr); + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); + pthread_mutex_init(&preempt_lock, &attr); + pthread_mutexattr_destroy(&attr); +} void preempt_disable(void) { |