From 56d8b8701df75d7bd8b0c402c624f38c56385c92 Mon Sep 17 00:00:00 2001 From: usa Date: Tue, 18 Nov 2014 22:46:13 +0000 Subject: [PATCH] * win32/win32.c (rb_w32_write): should set the error of GetOverlappedResult()'s, not WriteFile()'s (it's always ERROR_IO_PENDING, of course). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ win32/win32.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index bb15c499d3..4e5aac7ab8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Wed Nov 19 07:45:11 2014 NAKAMURA Usaku + + * win32/win32.c (rb_w32_write): should set the error of + GetOverlappedResult()'s, not WriteFile()'s (it's always + ERROR_IO_PENDING, of course). + Tue Nov 18 14:16:47 2014 Koichi Sasada * gc.c (gc_record): add information for debug print. diff --git a/win32/win32.c b/win32/win32.c index 325954ec3e..b54ab744f8 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -6547,7 +6547,7 @@ rb_w32_write(int fd, const void *buf, size_t size) if (!GetOverlappedResult((HANDLE)_osfhnd(fd), &ol, &written, TRUE)) { - errno = map_errno(err); + errno = map_errno(GetLastError()); CloseHandle(ol.hEvent); cancel_io((HANDLE)_osfhnd(fd)); MTHREAD_ONLY(LeaveCriticalSection(&_pioinfo(fd)->lock));