mirror of
				https://github.com/Ryujinx/SDL.git
				synced 2025-11-04 15:34:58 +00:00 
			
		
		
		
	Fixed bug 2076 - OpenGL doesn't work with --disable-threads
stepik-777 Thread local storage is used to store current window and current opengl context. OpenGL worked before this changeset: 7596 (45e5c263c096)
This commit is contained in:
		
							parent
							
								
									2afbd773b8
								
							
						
					
					
						commit
						4b942c5a07
					
				| 
						 | 
				
			
			@ -26,6 +26,7 @@
 | 
			
		|||
#define _SDL_systhread_h
 | 
			
		||||
 | 
			
		||||
#include "SDL_thread.h"
 | 
			
		||||
#include "SDL_thread_c.h"
 | 
			
		||||
 | 
			
		||||
/* This function creates a thread, passing args to SDL_RunThread(),
 | 
			
		||||
   saves a system-dependent thread id in thread->id, and returns 0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -125,6 +125,7 @@ SDL_Generic_GetTLSData()
 | 
			
		|||
    SDL_TLSEntry *entry;
 | 
			
		||||
    SDL_TLSData *storage = NULL;
 | 
			
		||||
 | 
			
		||||
#if !SDL_THREADS_DISABLED
 | 
			
		||||
    if (!SDL_generic_TLS_mutex) {
 | 
			
		||||
        static SDL_SpinLock tls_lock;
 | 
			
		||||
        SDL_AtomicLock(&tls_lock);
 | 
			
		||||
| 
						 | 
				
			
			@ -139,6 +140,7 @@ SDL_Generic_GetTLSData()
 | 
			
		|||
        }
 | 
			
		||||
        SDL_AtomicUnlock(&tls_lock);
 | 
			
		||||
    }
 | 
			
		||||
#endif /* SDL_THREADS_DISABLED */
 | 
			
		||||
 | 
			
		||||
    SDL_MemoryBarrierAcquire();
 | 
			
		||||
    SDL_LockMutex(SDL_generic_TLS_mutex);
 | 
			
		||||
| 
						 | 
				
			
			@ -148,7 +150,9 @@ SDL_Generic_GetTLSData()
 | 
			
		|||
            break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
#if !SDL_THREADS_DISABLED
 | 
			
		||||
    SDL_UnlockMutex(SDL_generic_TLS_mutex);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    return storage;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,6 +23,8 @@
 | 
			
		|||
#ifndef _SDL_thread_c_h
 | 
			
		||||
#define _SDL_thread_c_h
 | 
			
		||||
 | 
			
		||||
#include "SDL_thread.h"
 | 
			
		||||
 | 
			
		||||
/* Need the definitions of SYS_ThreadHandle */
 | 
			
		||||
#if SDL_THREADS_DISABLED
 | 
			
		||||
#include "generic/SDL_systhread_c.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue