From 76c9b584319b75b203c7e1ed7ed82b7bdbe4c442 Mon Sep 17 00:00:00 2001 From: Matt Ficken Date: Tue, 11 Apr 2017 01:54:57 -0700 Subject: [PATCH] Fix #74410 by calling WaitForMultipleObjects() instead of MsgWaitForMultipleObjects() --- win32/select.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/win32/select.c b/win32/select.c index b49de94592..7060ebf414 100644 --- a/win32/select.c +++ b/win32/select.c @@ -67,13 +67,13 @@ PHPAPI int php_select(int max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, stru if (handles[n_handles] == INVALID_HANDLE_VALUE) { /* socket */ if (SAFE_FD_ISSET(i, rfds)) { - FD_SET((uint)i, &sock_read); + FD_SET((uint32_t)i, &sock_read); } if (SAFE_FD_ISSET(i, wfds)) { - FD_SET((uint)i, &sock_write); + FD_SET((uint32_t)i, &sock_write); } if (SAFE_FD_ISSET(i, efds)) { - FD_SET((uint)i, &sock_except); + FD_SET((uint32_t)i, &sock_except); } if (i > sock_max_fd) { sock_max_fd = i; @@ -117,7 +117,7 @@ PHPAPI int php_select(int max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, stru /* check handles */ DWORD wret; - wret = MsgWaitForMultipleObjects(n_handles, handles, FALSE, retcode > 0 ? 0 : 100, QS_ALLEVENTS); + wret = WaitForMultipleObjects(n_handles, handles, FALSE, retcode > 0 ? 0 : 100); if (wret == WAIT_TIMEOUT) { /* set retcode to 0; this is the default. @@ -136,13 +136,13 @@ PHPAPI int php_select(int max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, stru for (i = 0; i < n_handles; i++) { if (WAIT_OBJECT_0 == WaitForSingleObject(handles[i], 0)) { if (SAFE_FD_ISSET(handle_slot_to_fd[i], rfds)) { - FD_SET((uint)handle_slot_to_fd[i], &aread); + FD_SET((uint32_t)handle_slot_to_fd[i], &aread); } if (SAFE_FD_ISSET(handle_slot_to_fd[i], wfds)) { - FD_SET((uint)handle_slot_to_fd[i], &awrite); + FD_SET((uint32_t)handle_slot_to_fd[i], &awrite); } if (SAFE_FD_ISSET(handle_slot_to_fd[i], efds)) { - FD_SET((uint)handle_slot_to_fd[i], &aexcept); + FD_SET((uint32_t)handle_slot_to_fd[i], &aexcept); } retcode++; } -- 2.40.0