Navigation Menu

Skip to content

Commit

Permalink
audio: Make SDL_AudioDevice::shutdown an atomic value.
Browse files Browse the repository at this point in the history
Just to make sure this get communicated to the audio thread properly.
  • Loading branch information
icculus committed Aug 1, 2016
1 parent 015dd8d commit c754662
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
6 changes: 3 additions & 3 deletions src/audio/SDL_audio.c
Expand Up @@ -103,7 +103,7 @@ static const AudioBootStrap *const bootstrap[] = {
&ESD_bootstrap,
#endif
#if SDL_AUDIO_DRIVER_NACL
&NACLAUD_bootstrap,
&NACLAUD_bootstrap,
#endif
#if SDL_AUDIO_DRIVER_NAS
&NAS_bootstrap,
Expand Down Expand Up @@ -611,7 +611,7 @@ SDL_RunAudio(void *devicep)
current_audio.impl.ThreadInit(device);

/* Loop, filling the audio buffers */
while (!device->shutdown) {
while (!SDL_AtomicGet(&device->shutdown)) {
/* Fill the current buffer with sound */
if (device->convert.needed) {
stream = device->convert.buf;
Expand Down Expand Up @@ -874,7 +874,7 @@ static void
close_audio_device(SDL_AudioDevice * device)
{
device->enabled = 0;
device->shutdown = 1;
SDL_AtomicSet(&device->shutdown, 1);
if (device->thread != NULL) {
SDL_WaitThread(device->thread, NULL);
}
Expand Down
4 changes: 2 additions & 2 deletions src/audio/SDL_sysaudio.h
Expand Up @@ -157,10 +157,10 @@ struct SDL_AudioDevice
SDL_AudioStreamer streamer;

/* Current state flags */
/* !!! FIXME: should be SDL_bool */
SDL_atomic_t shutdown; /* true if we are signaling the play thread to end. */
/* !!! FIXME: these should be SDL_bool */
int iscapture;
int enabled; /* true if device is functioning and connected. */
int shutdown; /* true if we are signaling the play thread to end. */
int paused;
int opened;

Expand Down

0 comments on commit c754662

Please sign in to comment.