From 494e9fd61d1a4ca98bb314a6615e720556519a95 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Sun, 11 Feb 2018 16:58:34 -0800 Subject: Don't asynchronously modify the source on disconnect --- Alc/ALu.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/Alc/ALu.c b/Alc/ALu.c index a3de456b..0f6c447e 100644 --- a/Alc/ALu.c +++ b/Alc/ALu.c @@ -1926,18 +1926,10 @@ void aluHandleDisconnect(ALCdevice *device, const char *msg, ...) for(i = 0;i < ctx->VoiceCount;i++) { ALvoice *voice = ctx->Voices[i]; - ALsource *source; - source = ATOMIC_EXCHANGE_PTR(&voice->Source, NULL, almemory_order_acq_rel); + ATOMIC_STORE(&voice->Source, NULL, almemory_order_relaxed); ATOMIC_STORE(&voice->Playing, false, almemory_order_release); - - if(source) - { - ALenum playing = AL_PLAYING; - (void)(ATOMIC_COMPARE_EXCHANGE_STRONG_SEQ(&source->state, &playing, AL_STOPPED)); - } } - ctx->VoiceCount = 0; ctx = ctx->next; } -- cgit v1.2.3