summaryrefslogtreecommitdiff
path: root/compat/w32pthreads.h
Commit message (Collapse)AuthorAgeFilesLines
* avformat/udp: support w32pthreads compatphunkyfish2020-03-081-0/+8
| | | | Signed-off-by: Marton Balint <cus@passwd.hu>
* avutil/thread: Add pthread_cond_timedwait functionMatt Oliver2020-01-211-0/+18
| | | | | | v2: fix calculating milisecond times and use SleepConditionVariableSRW. Signed-off-by: Matt Oliver <protogonoi@gmail.com>
* w32pthreads: remove some remaining superfluous checksJames Almer2017-12-251-7/+0
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* w32pthreads: always use Vista+ API, drop XP supportwm42017-12-261-256/+10
| | | | | | | | | | | This removes the XP compatibility code, and switches entirely to SWR locks, which are available starting at Windows Vista. This removes CRITICAL_SECTION use, which allows us to add PTHREAD_MUTEX_INITIALIZER, which will be useful later. Windows XP is hereby not a supported build target anymore. It was decided in a project vote that this is OK.
* Support building C++ files with MSVCAaron Levinson2017-04-131-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Made appropriate changes to be able to successfully build C++ files using a Visual C++ build on Windows. Based on an earlier patch by Kyle Schwarz. Comments: -- compat/w32pthreads.h: Made appropriate changes to w32pthreads.h to get it to build when it is being included in a C++ file and built with Visual C++. This is mostly a copy of Kyle Schwarz's patch as described above. -- configure: a) Now calling set_ccvars CXX to cause the various CXX_ variables to be setup properly. For example, with MSVC (Microsoft Visual C++), this causes CXX_O to be set to -Fo$@ instead of using the default value. The default value does not work with Visual C++. This change will also have the impact of correcting CXX_O (and possibly CXX_C) for other compilers, although this is really only relevant for the Intel compiler, in addition to MSVC. b) Now using cl for the C++ compiler for the MSVC toolchain. This is currently only relevant for building the Blackmagic/Decklink-related files under avdevice. Signed-off-by: Hendrik Leppkes <h.leppkes@gmail.com>
* Merge commit 'bd9cd04626a98a752c5771d057a6b86779359904'James Almer2017-04-041-12/+12
|\ | | | | | | | | | | | | * commit 'bd9cd04626a98a752c5771d057a6b86779359904': w32pthreads: Fix function pointer casts Merged-by: James Almer <jamrial@gmail.com>
| * w32pthreads: Fix function pointer castsDiego Biurrun2016-11-241-12/+12
| | | | | | | | This eliminates a handful of warnings at every inclusion of the header.
* | all: Make header guard names consistentTimothy Gu2016-01-311-3/+3
| |
* | Merge commit '407ac22322e5ce67996ec54ef619cafa4c9ceb78'Hendrik Leppkes2015-11-021-2/+2
|\ \ | |/ | | | | | | | | | | * commit '407ac22322e5ce67996ec54ef619cafa4c9ceb78': w32pthreads: Map MemoryBarrier to __sync_synchronize on mingw Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * w32pthreads: Map MemoryBarrier to __sync_synchronize on mingwMartin Storsjö2015-10-301-2/+2
| | | | | | | | | | | | | | This fixes building on older mingw (both mingw.org and mingw64; mingw64 from before May 2011). Signed-off-by: Martin Storsjö <martin@martin.st>
| * w32pthreads: fix mingw build on x86 with -msse2 or higherHendrik Leppkes2015-10-161-0/+5
| | | | | | | | | | | | | | | | When SSE2 or higher compiler optimizations are used, mingw uses the _mm_mfence intrinsic for MemoryBarrier, however it doesn't include the appropriate headers automatically. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | w32pthreads: fix mingw build on x86 with -msse2 or higherHendrik Leppkes2015-10-161-0/+5
| | | | | | | | | | | | When SSE2 or higher compiler optimizations are used, mingw uses the _mm_mfence intrinsic for MemoryBarrier, however it doesn't include the appropriate headers automatically.
* | winrt: multithreading supportwang-bin2015-10-161-0/+5
| | | | | | | | | | | | _beginthreadex is for desktop only. CreateThread is available for windows store apps on windows (and phone) 8.1 and later. http://msdn.microsoft.com/en-us/library/ms682453%28VS.85%29.aspx Signed-off-by: Matt Oliver <protogonoi@gmail.com>
* | Merge commit '2830bce47e2eb29c76202f19017031ddc1f95dd3'Hendrik Leppkes2015-10-101-0/+10
|\ \ | |/ | | | | | | | | | | * commit '2830bce47e2eb29c76202f19017031ddc1f95dd3': w32pthreads: Load dynamically loaded functions on demand Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * w32pthreads: Load dynamically loaded functions on demandHendrik Leppkes2015-10-071-0/+10
| | | | | | | | | | | | | | This removes the requirement of calling w32thread_init before being able to use the threading primitives. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | Merge commit 'b22693b06d1e5d73454a65c203b4d31c1ca5b69a'Hendrik Leppkes2015-10-101-0/+72
|\ \ | |/ | | | | | | | | | | * commit 'b22693b06d1e5d73454a65c203b4d31c1ca5b69a': w32pthreads: Add pthread_once emulation Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * w32pthreads: Add pthread_once emulationHendrik Leppkes2015-10-071-0/+73
| | | | | | | | | | | | | | | | The emulation uses native InitOnce* APIs on Windows Vista+, and a lock-free/allocation-free approach using atomics and spinning for Windows XP. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
| * w32pthreads: use the condition variable API directly when targeting newer ↵James Almer2014-10-101-22/+38
| | | | | | | | | | | | | | | | | | | | versions of Windows Wrap the function calls in a similar fashion to how it's being done with the critical section API. Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Martin Storsjö <martin@martin.st>
| * w32pthreads: use the CONDITION_VARIABLE typedef if availableJames Almer2014-10-101-10/+13
| | | | | | | | | | | | | | | | 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>
* | compat/w32pthreads: Add return values to match the simulated pthread functions.Matt Oliver2015-09-301-13/+23
| |
* | compat/w32pthreads: use the condition variable API directly when targeting ↵James Almer2014-10-091-22/+39
| | | | | | | | | | | | | | | | | | | | newer versions of Windows Wrap the function calls in a similar fashion to how it's being done with the critical section API. Reviewed-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: James Almer <jamrial@gmail.com>
* | compat/w32pthreads: use the CONDITION_VARIABLE typedef if availableJames Almer2014-10-091-10/+13
| | | | | | | | | | | | | | | | | | This silences warnings about passing arguments from incompatible pointer type when targeting Windows Vista or newer. Tested-by: Matt Oliver <protogonoi@gmail.com> Reviewed-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: James Almer <jamrial@gmail.com>
* | Merge commit '6baeadd11083774ebd823dd5e1a744c2150a3bfc'Michael Niedermayer2014-08-151-10/+11
|\ \ | |/ | | | | | | | | | | | | | | | | * commit '6baeadd11083774ebd823dd5e1a744c2150a3bfc': w32pthreads: Mark functions in compatibility wrapper as av_unused Conflicts: compat/w32pthreads.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * w32pthreads: Mark functions in compatibility wrapper as av_unusedDiego Biurrun2014-08-151-10/+11
| | | | | | | | | | | | This avoids annoying warnings about unused functions. The compatibility wrapper is designed to provide a complete (stub) API, so some functions being unused by some files is natural and no reason for a warning.
* | Merge commit '428b0578c64241fc677fed7083cc8fe65e10f32e'Michael Niedermayer2014-08-131-0/+12
|\ \ | |/ | | | | | | | | | | * commit '428b0578c64241fc677fed7083cc8fe65e10f32e': w32threads: Use newer thread synchronization functions when targeting Vista Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * w32threads: Use newer thread synchronization functions when targeting VistaMartin Storsjö2014-08-131-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When explicitly targeting Vista or newer (which only happens if the caller explicitly sets _WIN32_WINNT to a high enough value via the extra cflags option - otherwise configure script sets -D_WIN32_WINNT=0x0502), we already unconditionally link to the ConditionVariable functions, since 4622f11f9. Similarly use the newer -Ex versions of CreateEvent, CreateSemaphore, InitializeCriticalSection and WaitForSingleObject, that all appeared in Vista. When building Windows Store applications, the older versions of these functions aren't available, only the -Ex functions. When doing such a build, the user can set -D_WIN32_WINNT=0x0600 to forcibly use the newer functions instead. Signed-off-by: Martin Storsjö <martin@martin.st>
* | compat/w32pthreads: add return value to pthread_cond_init().Nicolas George2014-05-261-5/+6
| |
* | Merge commit 'ef51692a49d58963966adca55c62da9c34c3c7e1'Michael Niedermayer2013-08-281-5/+5
|\ \ | |/ | | | | | | | | | | * commit 'ef51692a49d58963966adca55c62da9c34c3c7e1': Revert "w32pthread: help compiler figure out undeeded code" Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Revert "w32pthread: help compiler figure out undeeded code"Martin Storsjö2013-08-271-5/+5
| | | | | | | | | | | | | | | | | | | | This reverts commit 4622f11f9c83db8a2e08408c71ff901826ca652c. The compiler should be able to do the dead code elimination now without this when the cond_* names point directly to the real functions instead of to local function pointers. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '4332bf98dc051fd1ffbd9d4ddc1c5e55790c96f1'Michael Niedermayer2013-08-281-5/+7
|\ \ | |/ | | | | | | | | | | * commit '4332bf98dc051fd1ffbd9d4ddc1c5e55790c96f1': w32threads: Don't use function pointers when linking directly to newer APIs Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * w32threads: Don't use function pointers when linking directly to newer APIsMartin Storsjö2013-08-271-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | This reduces the call overhead slightly. More noticeably, it restores the earlier (unintended?) feature that condition variable functions work just fine even if w32thread_init() hasn't been called. This was broken as a side effect of 4622f11f9, if explicitly targeting Vista+. This makes w32threading work in VP8 again, if targeting Vista+. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '4622f11f9c83db8a2e08408c71ff901826ca652c'Michael Niedermayer2013-08-221-5/+5
|\ \ | |/ | | | | | | | | | | * commit '4622f11f9c83db8a2e08408c71ff901826ca652c': w32pthread: help compiler figure out undeeded code Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * w32pthread: help compiler figure out undeeded codeRafaël Carré2013-08-211-5/+5
| | | | | | | | | | | | | | | | The emulation code is not needed when targetting Vista+ This helps getting rid of CreateSemaphore symbol, which is forbidden in Windows Store apps. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '439902e0d68a0f0d800c21b5e6b598d5fa0c51da'Michael Niedermayer2013-07-191-3/+3
|\ \ | |/ | | | | | | | | | | | | | | | | * commit '439902e0d68a0f0d800c21b5e6b598d5fa0c51da': Employ consistent LIBAV_COMPAT_ multiple inclusion guards in compat/ Conflicts: compat/aix/math.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Employ consistent LIBAV_COMPAT_ multiple inclusion guards in compat/Diego Biurrun2013-07-181-3/+3
| | | | | | | | Also fix a comment and an #endif comment.
* | Merge commit '90f9a5830b5d332de7ebb1ab45589f1870cbd65d'Michael Niedermayer2013-05-241-4/+5
|/ | | | | | | | | | | | * commit '90f9a5830b5d332de7ebb1ab45589f1870cbd65d': w32pthreads: move from lavc to compat/ Conflicts: libavcodec/Makefile libavcodec/pthread.c libavcodec/vp8.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
* w32pthreads: move from lavc to compat/Anton Khirnov2013-05-241-0/+279
It will be used in other places than lavc.