[前][次][番号順一覧][スレッド一覧]

ruby-changes:7396

From: usa <ko1@a...>
Date: Fri, 29 Aug 2008 04:49:39 +0900 (JST)
Subject: [ruby-changes:7396] Ruby:r18915 (trunk): * win32/win32.c (rb_w32_read, rb_w32_write): more accurate handling

usa	2008-08-29 04:49:20 +0900 (Fri, 29 Aug 2008)

  New Revision: 18915

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=18915

  Log:
    * win32/win32.c (rb_w32_read, rb_w32_write): more accurate handling
      of wait result.

  Modified files:
    trunk/ChangeLog
    trunk/win32/win32.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 18914)
+++ ChangeLog	(revision 18915)
@@ -1,3 +1,8 @@
+Fri Aug 29 04:47:49 2008  NAKAMURA Usaku  <usa@r...>
+
+	* win32/win32.c (rb_w32_read, rb_w32_write): more accurate handling
+	  of wait result.
+
 Fri Aug 29 02:59:35 2008  Tanaka Akira  <akr@f...>
 
 	* transcode.c (econv_finish): new method.
Index: win32/win32.c
===================================================================
--- win32/win32.c	(revision 18914)
+++ win32/win32.c	(revision 18915)
@@ -4367,7 +4367,9 @@
 	if (pol) {
 	    wait = rb_w32_wait_events_blocking(&ol.hEvent, 1, INFINITE);
 	    if (wait != WAIT_OBJECT_0) {
-		if (errno != EINTR)
+		if (wait == WAIT_OBJECT_0 + 1)
+		    errno = EINTR;
+		else
 		    errno = map_errno(GetLastError());
 		CloseHandle(ol.hEvent);
 		cancel_io((HANDLE)_osfhnd(fd));
@@ -4471,7 +4473,9 @@
 	if (pol) {
 	    wait = rb_w32_wait_events_blocking(&ol.hEvent, 1, INFINITE);
 	    if (wait != WAIT_OBJECT_0) {
-		if (errno != EINTR)
+		if (wait == WAIT_OBJECT_0 + 1)
+		    errno = EINTR;
+		else
 		    errno = map_errno(GetLastError());
 		CloseHandle(ol.hEvent);
 		cancel_io((HANDLE)_osfhnd(fd));

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]