diff options
author | Chris Robinson <[email protected]> | 2018-02-04 00:01:12 -0800 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2018-02-04 00:01:12 -0800 |
commit | 9b878c64f9ec83adc4886db553ca184952ff50b4 (patch) | |
tree | db4df8b93f71ac2f0887d803f98314d8994011ea /OpenAL32 | |
parent | 1f61472e77faa0b57231b19236272d3e4d67fbc0 (diff) |
Make the Connected state atomic
Also don't send the Disconnected event more than once.
Diffstat (limited to 'OpenAL32')
-rw-r--r-- | OpenAL32/Include/alMain.h | 2 | ||||
-rw-r--r-- | OpenAL32/alSource.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h index 5c2435a4..baf610b8 100644 --- a/OpenAL32/Include/alMain.h +++ b/OpenAL32/Include/alMain.h @@ -466,7 +466,7 @@ struct ALCdevice_struct { RefCount ref; - ALCboolean Connected; + ATOMIC(ALenum) Connected; enum DeviceType Type; ALuint Frequency; diff --git a/OpenAL32/alSource.c b/OpenAL32/alSource.c index c20226ca..8c8b2149 100644 --- a/OpenAL32/alSource.c +++ b/OpenAL32/alSource.c @@ -2518,7 +2518,7 @@ AL_API ALvoid AL_APIENTRY alSourcePlayv(ALsizei n, const ALuint *sources) device = context->Device; ALCdevice_Lock(device); /* If the device is disconnected, go right to stopped. */ - if(!device->Connected) + if(!ATOMIC_LOAD(&device->Connected, almemory_order_acquire)) { for(i = 0;i < n;i++) { |