aboutsummaryrefslogtreecommitdiffstats
path: root/Alc
diff options
context:
space:
mode:
Diffstat (limited to 'Alc')
-rw-r--r--Alc/ALc.c5
-rw-r--r--Alc/mixer.c2
2 files changed, 4 insertions, 3 deletions
diff --git a/Alc/ALc.c b/Alc/ALc.c
index 632e1f18..8ed10ac6 100644
--- a/Alc/ALc.c
+++ b/Alc/ALc.c
@@ -2613,7 +2613,7 @@ static ALvoid InitContext(ALCcontext *Context)
ATOMIC_FLAG_TEST_AND_SET(&Context->PropsClean, almemory_order_relaxed);
ATOMIC_INIT(&Context->DeferUpdates, AL_FALSE);
almtx_init(&Context->EventThrdLock, almtx_plain);
- alcnd_init(&Context->EventCnd);
+ alsem_init(&Context->EventSem, 0);
Context->AsyncEvents = NULL;
ATOMIC_INIT(&Context->EnabledEvts, 0);
almtx_init(&Context->EventCbLock, almtx_plain);
@@ -2753,12 +2753,13 @@ static void FreeContext(ALCcontext *context)
while(ll_ringbuffer_write_space(context->AsyncEvents) == 0)
althrd_yield();
ll_ringbuffer_write(context->AsyncEvents, (const char*)&kill_evt, 1);
+ alsem_post(&context->EventSem);
althrd_join(context->EventThread, NULL);
}
almtx_destroy(&context->EventCbLock);
almtx_destroy(&context->EventThrdLock);
- alcnd_destroy(&context->EventCnd);
+ alsem_destroy(&context->EventSem);
ll_ringbuffer_free(context->AsyncEvents);
context->AsyncEvents = NULL;
diff --git a/Alc/mixer.c b/Alc/mixer.c
index 31e94974..c34284d5 100644
--- a/Alc/mixer.c
+++ b/Alc/mixer.c
@@ -754,7 +754,7 @@ ALboolean MixSource(ALvoice *voice, ALuint SourceID, ALCcontext *Context, ALsize
AL_EVENT_TYPE_BUFFER_COMPLETED_SOFT, SourceID, 0, "Buffer completed"
);
} while(--buffers_done > 0);
- alcnd_signal(&Context->EventCnd);
+ alsem_post(&Context->EventSem);
}
return isplaying;