diff options
-rw-r--r-- | src/pulsecore/mutex.h | 4 | ||||
-rw-r--r-- | src/pulsecore/ratelimit.c | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/pulsecore/mutex.h b/src/pulsecore/mutex.h index a4dd6738..b1edc132 100644 --- a/src/pulsecore/mutex.h +++ b/src/pulsecore/mutex.h @@ -46,10 +46,14 @@ void pa_cond_free(pa_cond *c); void pa_cond_signal(pa_cond *c, int broadcast); int pa_cond_wait(pa_cond *c, pa_mutex *m); +/* Static mutexes are basically just atomically updated pointers to pa_mutex objects */ + typedef struct pa_static_mutex { pa_atomic_ptr_t ptr; } pa_static_mutex; +#define PA_STATIC_MUTEX_INIT { PA_ATOMIC_PTR_INIT(NULL) } + pa_mutex* pa_static_mutex_get(pa_static_mutex *m, pa_bool_t recursive, pa_bool_t inherit_priority); #endif diff --git a/src/pulsecore/ratelimit.c b/src/pulsecore/ratelimit.c index 29e6fb10..e913ca19 100644 --- a/src/pulsecore/ratelimit.c +++ b/src/pulsecore/ratelimit.c @@ -29,7 +29,7 @@ #include "ratelimit.h" -static pa_static_mutex mutex; +static pa_static_mutex mutex = PA_STATIC_MUTEX_INIT; /* Modelled after Linux' lib/ratelimit.c by Dave Young * <hidave.darkstar@gmail.com>, which is licensed GPLv2. */ |