From c331b57fa8f09cfb376d12226a4cc7f3117654db Mon Sep 17 00:00:00 2001 From: Christopher Kohlhoff Date: Tue, 4 Apr 2023 20:15:22 +1000 Subject: [PATCH] Disable runtime Windows version test unless targeting older Windows versions. --- include/boost/asio/detail/impl/win_iocp_io_context.ipp | 4 ++++ include/boost/asio/detail/win_iocp_io_context.hpp | 2 ++ 2 files changed, 6 insertions(+) diff --git a/include/boost/asio/detail/impl/win_iocp_io_context.ipp b/include/boost/asio/detail/impl/win_iocp_io_context.ipp index 72fa751c..524667a4 100644 --- a/include/boost/asio/detail/impl/win_iocp_io_context.ipp +++ b/include/boost/asio/detail/impl/win_iocp_io_context.ipp @@ -531,6 +531,7 @@ size_t win_iocp_io_context::do_one(DWORD msec, DWORD win_iocp_io_context::get_gqcs_timeout() { +#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0600) OSVERSIONINFOEX osvi; ZeroMemory(&osvi, sizeof(osvi)); osvi.dwOSVersionInfoSize = sizeof(osvi); @@ -543,6 +544,9 @@ DWORD win_iocp_io_context::get_gqcs_timeout() return INFINITE; return default_gqcs_timeout; +#else // !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0600) + return INFINITE; +#endif // !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0600) } void win_iocp_io_context::do_add_timer_queue(timer_queue_base& queue) diff --git a/include/boost/asio/detail/win_iocp_io_context.hpp b/include/boost/asio/detail/win_iocp_io_context.hpp index 3904baeb..f91a70d0 100644 --- a/include/boost/asio/detail/win_iocp_io_context.hpp +++ b/include/boost/asio/detail/win_iocp_io_context.hpp @@ -273,11 +273,13 @@ private: enum { +#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0600) // Timeout to use with GetQueuedCompletionStatus on older versions of // Windows. Some versions of windows have a "bug" where a call to // GetQueuedCompletionStatus can appear stuck even though there are events // waiting on the queue. Using a timeout helps to work around the issue. default_gqcs_timeout = 500, +#endif // !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0600) // Maximum waitable timer timeout, in milliseconds. max_timeout_msec = 5 * 60 * 1000,