aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Hoersken <info@marc-hoersken.de>2020-06-01 08:32:21 +0200
committerMarc Hoersken <info@marc-hoersken.de>2020-06-01 08:32:21 +0200
commit5325b92a0a3c2b29a4be03ed88c14972114774af (patch)
tree3fb1b3c289c07b6a04e64d32ef0d79e167766d7f
parent8346c90b789e249e42cd1e9f4542f5c55a1cc917 (diff)
select: always use Sleep in Curl_wait_ms on Win32
Since Win32 almost always will also have USE_WINSOCK, we can reduce complexity and always use Sleep there. Assisted-by: Jay Satiro Reviewed-by: Daniel Stenberg Follow up to #5343 Closes #5489
-rw-r--r--lib/select.c20
1 files changed, 4 insertions, 16 deletions
diff --git a/lib/select.c b/lib/select.c
index 08468216f..ca0e24fb1 100644
--- a/lib/select.c
+++ b/lib/select.c
@@ -86,16 +86,12 @@ int Curl_wait_ms(timediff_t timeout_ms)
}
#if defined(MSDOS)
delay(timeout_ms);
-#elif defined(USE_WINSOCK)
+#elif defined(WIN32)
/* prevent overflow, timeout_ms is typecast to ULONG/DWORD. */
-#if TIMEDIFF_T_MAX > ULONG_MAX
- if(timeout_ms > ULONG_MAX)
-#if ULONG_MAX < INFINITE
- timeout_ms = ULONG_MAX;
-#else
+#if TIMEDIFF_T_MAX >= ULONG_MAX
+ if(timeout_ms >= ULONG_MAX)
timeout_ms = ULONG_MAX-1;
- /* avoid waiting forever */
-#endif
+ /* don't use ULONG_MAX, because that is equal to INFINITE */
#endif
Sleep((ULONG)timeout_ms);
#else
@@ -119,14 +115,6 @@ int Curl_wait_ms(timediff_t timeout_ms)
#endif
pending_tv.tv_sec = (time_t)tv_sec;
pending_tv.tv_usec = (suseconds_t)tv_usec;
-#elif defined(WIN32) /* maybe also others in the future */
-#if TIMEDIFF_T_MAX > LONG_MAX
- /* tv_sec overflow check on Windows there we know it is long */
- if(tv_sec > LONG_MAX)
- tv_sec = LONG_MAX;
-#endif
- pending_tv.tv_sec = (long)tv_sec;
- pending_tv.tv_usec = (long)tv_usec;
#else
#if TIMEDIFF_T_MAX > INT_MAX
/* tv_sec overflow check in case time_t is signed */