summaryrefslogtreecommitdiffstats
path: root/src/pulsecore/once-posix.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pulsecore/once-posix.c')
-rw-r--r--src/pulsecore/once-posix.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/pulsecore/once-posix.c b/src/pulsecore/once-posix.c
index 7ccd08ed..25ccb035 100644
--- a/src/pulsecore/once-posix.c
+++ b/src/pulsecore/once-posix.c
@@ -35,17 +35,17 @@
/* Not reentrant -- how could it be? */
void pa_once(pa_once_t *control, pa_once_func_t func) {
pa_mutex *m;
-
+
pa_assert(control);
pa_assert(func);
if (pa_atomic_load(&control->done))
return;
-
+
pa_atomic_inc(&control->ref);
-
+
for (;;) {
-
+
if ((m = pa_atomic_ptr_load(&control->mutex))) {
/* The mutex is stored in locked state, hence let's just
@@ -57,7 +57,7 @@ void pa_once(pa_once_t *control, pa_once_func_t func) {
pa_assert_se(m = pa_mutex_new(0));
pa_mutex_lock(m);
-
+
if (pa_atomic_ptr_cmpxchg(&control->mutex, NULL, m)) {
func();
pa_atomic_store(&control->done, 1);
@@ -71,7 +71,7 @@ void pa_once(pa_once_t *control, pa_once_func_t func) {
}
pa_assert(pa_atomic_load(&control->done));
-
+
if (pa_atomic_dec(&control->ref) <= 1) {
pa_assert(pa_atomic_ptr_cmpxchg(&control->mutex, m, NULL));
pa_mutex_free(m);