On 09/10/14 5:03 AM, Martin Storsjö wrote:
> On Wed, 8 Oct 2014, James Almer wrote:
> 
>> Wrap the function calls in a similar fashion to how it's being done
>> with the critical section API.
>>
>> Signed-off-by: James Almer <jamr...@gmail.com>
>> ---
>> compat/w32pthreads.h | 63 
>> ++++++++++++++++++++++++++++++----------------------
>> 1 file changed, 37 insertions(+), 26 deletions(-)
>>
>> diff --git a/compat/w32pthreads.h b/compat/w32pthreads.h
>> index b905a95..e586ecb 100644
>> --- a/compat/w32pthreads.h
>> +++ b/compat/w32pthreads.h
>> @@ -64,32 +64,6 @@ typedef struct pthread_cond_t {
>> } pthread_cond_t;
>> #endif
>>
>> -/* function pointers to conditional variable API on windows 6.0+ kernels */
>> -#if _WIN32_WINNT < 0x0600
>> -static void (WINAPI *cond_broadcast)(pthread_cond_t *cond);
>> -static void (WINAPI *cond_init)(pthread_cond_t *cond);
>> -static void (WINAPI *cond_signal)(pthread_cond_t *cond);
>> -static BOOL (WINAPI *cond_wait)(pthread_cond_t *cond, pthread_mutex_t 
>> *mutex,
>> -                                DWORD milliseconds);
>> -#else
>> -#define cond_init      InitializeConditionVariable
>> -#define cond_broadcast WakeAllConditionVariable
>> -#define cond_signal    WakeConditionVariable
>> -#define cond_wait      SleepConditionVariableCS
>> -
>> -#define CreateEvent(a, reset, init, name)                   \
>> -    CreateEventEx(a, name,                                  \
>> -                  (reset ? CREATE_EVENT_MANUAL_RESET : 0) | \
>> -                  (init ? CREATE_EVENT_INITIAL_SET : 0),    \
>> -                  EVENT_ALL_ACCESS)
>> -// CreateSemaphoreExA seems to be desktop-only, but as long as we don't
>> -// use named semaphores, it doesn't matter if we use the W version.
>> -#define CreateSemaphore(a, b, c, d) \
>> -    CreateSemaphoreExW(a, b, c, d, 0, SEMAPHORE_ALL_ACCESS)
>> -#define InitializeCriticalSection(x) InitializeCriticalSectionEx(x, 0, 0)
>> -#define WaitForSingleObject(a, b) WaitForSingleObjectEx(a, b, FALSE)
>> -#endif
>> -
> 
> Where did the 
> CreateEvent/CreateSemaphore/InitializeCriticalSection/WaitForSingleObject 
> definitions go here? When targeting desktop windows they don't matter (since 
> the old functions still exist), but when targeting WinRT/WinPhone, the old 
> functions are no longer available.

You're right about InitializeCriticalSection and WaitForSingleObject (I somehow 
missed those), but 
the redefinition of CreateEvent and CreateSemaphore are not needed anymore 
since they will now be 
used only for the non-native version of the condition variable API, which is 
only compiled when 
_WIN32_WINT < 0x0600.

I'll send a patch to put the former two back in place.
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to