diff options
author | Chris Robinson <[email protected]> | 2017-04-20 03:14:49 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2017-04-20 03:14:49 -0700 |
commit | 63baa3b1c712317e7826de6f28ecc865d1fb9b58 (patch) | |
tree | d7f23987f7a392a6cf00948c26e5f8550f86fc76 /OpenAL32/alSource.c | |
parent | 5dcbb8db38bb9aa88d3be45cf84f2e7d993acdd0 (diff) |
Missed a raw atomic variable access
Diffstat (limited to 'OpenAL32/alSource.c')
-rw-r--r-- | OpenAL32/alSource.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/OpenAL32/alSource.c b/OpenAL32/alSource.c index 0da513aa..757c96db 100644 --- a/OpenAL32/alSource.c +++ b/OpenAL32/alSource.c @@ -2810,8 +2810,9 @@ AL_API ALvoid AL_APIENTRY alSourceQueueBuffers(ALuint src, ALsizei nb, const ALu source->queue = BufferListStart; else { - while(BufferList->next != NULL) - BufferList = ATOMIC_LOAD(&BufferList->next, almemory_order_relaxed); + ALbufferlistitem *next; + while((next=ATOMIC_LOAD(&BufferList->next, almemory_order_relaxed)) != NULL) + BufferList = next; ATOMIC_STORE(&BufferList->next, BufferListStart, almemory_order_release); } WriteUnlock(&source->queue_lock); |