mirror of
https://github.com/curl/curl.git
synced 2026-08-24 15:23:36 +03:00
build: stop detecting sched_yield() on Windows
On Windows a successful `sched_yield()` detection requires mingw-w64 built with POSIX threads (not Win32 threads) and GCC (not llvm/clang). (linking to `winpthread` via custom options may also work.) In CMake builds, it was pre-cached as unavailable before this patch. When detected (via autotools), it got only used for Windows XP or older targets combined with a non-GCC, non-clang compiler that doesn't support `__builtin_ia32_pause()`, or with the Intel C compiler. According to `lib/easy_lock.h`. mingw-w64 only supports GCC and clang, leaving a very narrow chance when `shed_yield()` gets called on Windows. Even then, `sched_yield()` is implemented in `winpthread` as `Sleep(0)`, which may or not be a useful. It's also trivial to implement locally if it is, and such rare build combination is also deemed useful. Thus, this patch marks `sched_yields()` permanently unavailable on the Windows platform also with autotools, and instead of pre-caching, skip this feature check with CMake. This syncs `HAVE_SCHED_YIELDS` between builds methods on Windows. Follow-up to9b517c8b69#11973 Follow-up to23af112f55#8680 Closes #16037
This commit is contained in:
parent
e49797abc2
commit
2c4bfefe91
3 changed files with 2 additions and 3 deletions
|
|
@ -131,7 +131,6 @@ set(HAVE_SEND 1)
|
|||
set(HAVE_STROPTS_H 0)
|
||||
set(HAVE_ARC4RANDOM 0)
|
||||
set(HAVE_FNMATCH 0)
|
||||
set(HAVE_SCHED_YIELD 0)
|
||||
set(HAVE_ARPA_INET_H 0)
|
||||
set(HAVE_FCNTL_H 1)
|
||||
set(HAVE_IFADDRS_H 0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue