You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	w32pthreads: use the CONDITION_VARIABLE typedef if available
This silences warnings about passing arguments from incompatible pointer type when targeting Windows Vista or newer. Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
		
				
					committed by
					
						 Martin Storsjö
						Martin Storsjö
					
				
			
			
				
	
			
			
			
						parent
						
							2bc220958c
						
					
				
				
					commit
					73ea3ffcd5
				
			| @@ -54,12 +54,15 @@ typedef struct pthread_t { | |||||||
|  * not mutexes */ |  * not mutexes */ | ||||||
| typedef CRITICAL_SECTION pthread_mutex_t; | typedef CRITICAL_SECTION pthread_mutex_t; | ||||||
|  |  | ||||||
| /* This is the CONDITIONAL_VARIABLE typedef for using Window's native | /* This is the CONDITION_VARIABLE typedef for using Windows' native | ||||||
|  * conditional variables on kernels 6.0+. |  * conditional variables on kernels 6.0+. */ | ||||||
|  * MinGW does not currently have this typedef. */ | #if HAVE_CONDITION_VARIABLE_PTR | ||||||
|  | typedef CONDITION_VARIABLE pthread_cond_t; | ||||||
|  | #else | ||||||
| typedef struct pthread_cond_t { | typedef struct pthread_cond_t { | ||||||
|     void *ptr; |     void *Ptr; | ||||||
| } pthread_cond_t; | } pthread_cond_t; | ||||||
|  | #endif | ||||||
|  |  | ||||||
| /* function pointers to conditional variable API on windows 6.0+ kernels */ | /* function pointers to conditional variable API on windows 6.0+ kernels */ | ||||||
| #if _WIN32_WINNT < 0x0600 | #if _WIN32_WINNT < 0x0600 | ||||||
| @@ -158,7 +161,7 @@ static av_unused void pthread_cond_init(pthread_cond_t *cond, const void *unused | |||||||
|     win32_cond = av_mallocz(sizeof(win32_cond_t)); |     win32_cond = av_mallocz(sizeof(win32_cond_t)); | ||||||
|     if (!win32_cond) |     if (!win32_cond) | ||||||
|         return; |         return; | ||||||
|     cond->ptr = win32_cond; |     cond->Ptr = win32_cond; | ||||||
|     win32_cond->semaphore = CreateSemaphore(NULL, 0, 0x7fffffff, NULL); |     win32_cond->semaphore = CreateSemaphore(NULL, 0, 0x7fffffff, NULL); | ||||||
|     if (!win32_cond->semaphore) |     if (!win32_cond->semaphore) | ||||||
|         return; |         return; | ||||||
| @@ -172,7 +175,7 @@ static av_unused void pthread_cond_init(pthread_cond_t *cond, const void *unused | |||||||
|  |  | ||||||
| static av_unused void pthread_cond_destroy(pthread_cond_t *cond) | static av_unused void pthread_cond_destroy(pthread_cond_t *cond) | ||||||
| { | { | ||||||
|     win32_cond_t *win32_cond = cond->ptr; |     win32_cond_t *win32_cond = cond->Ptr; | ||||||
|     /* native condition variables do not destroy */ |     /* native condition variables do not destroy */ | ||||||
|     if (cond_init) |     if (cond_init) | ||||||
|         return; |         return; | ||||||
| @@ -183,12 +186,12 @@ static av_unused void pthread_cond_destroy(pthread_cond_t *cond) | |||||||
|     pthread_mutex_destroy(&win32_cond->mtx_waiter_count); |     pthread_mutex_destroy(&win32_cond->mtx_waiter_count); | ||||||
|     pthread_mutex_destroy(&win32_cond->mtx_broadcast); |     pthread_mutex_destroy(&win32_cond->mtx_broadcast); | ||||||
|     av_freep(&win32_cond); |     av_freep(&win32_cond); | ||||||
|     cond->ptr = NULL; |     cond->Ptr = NULL; | ||||||
| } | } | ||||||
|  |  | ||||||
| static av_unused void pthread_cond_broadcast(pthread_cond_t *cond) | static av_unused void pthread_cond_broadcast(pthread_cond_t *cond) | ||||||
| { | { | ||||||
|     win32_cond_t *win32_cond = cond->ptr; |     win32_cond_t *win32_cond = cond->Ptr; | ||||||
|     int have_waiter; |     int have_waiter; | ||||||
|  |  | ||||||
|     if (cond_broadcast) { |     if (cond_broadcast) { | ||||||
| @@ -219,7 +222,7 @@ static av_unused void pthread_cond_broadcast(pthread_cond_t *cond) | |||||||
|  |  | ||||||
| static av_unused int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) | static av_unused int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) | ||||||
| { | { | ||||||
|     win32_cond_t *win32_cond = cond->ptr; |     win32_cond_t *win32_cond = cond->Ptr; | ||||||
|     int last_waiter; |     int last_waiter; | ||||||
|     if (cond_wait) { |     if (cond_wait) { | ||||||
|         cond_wait(cond, mutex, INFINITE); |         cond_wait(cond, mutex, INFINITE); | ||||||
| @@ -251,7 +254,7 @@ static av_unused int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mu | |||||||
|  |  | ||||||
| static av_unused void pthread_cond_signal(pthread_cond_t *cond) | static av_unused void pthread_cond_signal(pthread_cond_t *cond) | ||||||
| { | { | ||||||
|     win32_cond_t *win32_cond = cond->ptr; |     win32_cond_t *win32_cond = cond->Ptr; | ||||||
|     int have_waiter; |     int have_waiter; | ||||||
|     if (cond_signal) { |     if (cond_signal) { | ||||||
|         cond_signal(cond); |         cond_signal(cond); | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								configure
									
									
									
									
										vendored
									
									
								
							| @@ -1498,6 +1498,7 @@ TOOLCHAIN_FEATURES=" | |||||||
| " | " | ||||||
|  |  | ||||||
| TYPES_LIST=" | TYPES_LIST=" | ||||||
|  |     CONDITION_VARIABLE_Ptr | ||||||
|     socklen_t |     socklen_t | ||||||
|     struct_addrinfo |     struct_addrinfo | ||||||
|     struct_group_source_req |     struct_group_source_req | ||||||
| @@ -4088,6 +4089,7 @@ check_func_headers windows.h MapViewOfFile | |||||||
| check_func_headers windows.h SetConsoleTextAttribute | check_func_headers windows.h SetConsoleTextAttribute | ||||||
| check_func_headers windows.h Sleep | check_func_headers windows.h Sleep | ||||||
| check_func_headers windows.h VirtualAlloc | check_func_headers windows.h VirtualAlloc | ||||||
|  | check_struct windows.h "CONDITION_VARIABLE" Ptr | ||||||
|  |  | ||||||
| check_header direct.h | check_header direct.h | ||||||
| check_header dlfcn.h | check_header dlfcn.h | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user