mirror of
				https://github.com/Ryujinx/SDL.git
				synced 2025-11-04 09:14:58 +00:00 
			
		
		
		
	audio: Make SDL_AudioDevice::shutdown an atomic value.
Just to make sure this get communicated to the audio thread properly.
This commit is contained in:
		
							parent
							
								
									015dd8dd1d
								
							
						
					
					
						commit
						c754662dda
					
				| 
						 | 
				
			
			@ -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,
 | 
			
		||||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			@ -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);
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue