From e155302f3925ae7bc81a26d973beb2636541f666 Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 17 Apr 2017 13:23:42 +0000 Subject: thread_win32.c: fix index * thread_win32.c (w32_wait_events): fix wait object index in the case of interrupt_event is not usable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- thread_win32.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'thread_win32.c') diff --git a/thread_win32.c b/thread_win32.c index 3edb998695..da181f043e 100644 --- a/thread_win32.c +++ b/thread_win32.c @@ -163,6 +163,7 @@ w32_wait_events(HANDLE *events, int count, DWORD timeout, rb_thread_t *th) { HANDLE *targets = events; HANDLE intr; + const int initcount = count; DWORD ret; thread_debug(" w32_wait_events events:%p, count:%d, timeout:%ld, th:%p\n", @@ -184,7 +185,7 @@ w32_wait_events(HANDLE *events, int count, DWORD timeout, rb_thread_t *th) ret = WaitForMultipleObjects(count, targets, FALSE, timeout); thread_debug(" WaitForMultipleObjects end (ret: %lu)\n", ret); - if (ret == (DWORD)(WAIT_OBJECT_0 + count - 1) && th) { + if (ret == (DWORD)(WAIT_OBJECT_0 + initcount) && th) { errno = EINTR; } if (ret == WAIT_FAILED && THREAD_DEBUG) { -- cgit v1.2.3