[#10793] 今度こそ (patch of the ruby-1.4.6 for NT4.0&VC4.0 on DEC Alpha.) — kou@...1609.sip.eee.yamaguchi-u.ac.jp (Koichi Okada)

岡田です。

10 messages 2000/09/01

[#10920] SIGINT on windows — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

17 messages 2000/09/14
[#11077] Re: SIGINT on windows — matz@... (Yukihiro Matsumoto) 2000/09/27

まつもと ゆきひろです

[#10944] dummy DLL on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

19 messages 2000/09/18
[#10955] Re: dummy DLL on Windows — WATANABE Hirofumi <eban@...> 2000/09/19

わたなべです.

[#10963] Re: dummy DLL on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/09/19

なかだです。

[#10964] Re: dummy DLL on Windows — WATANABE Hirofumi <eban@...> 2000/09/19

わたなべです.

[#10978] [PATCH] require in require — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

15 messages 2000/09/20

[#10985] httphead.rb proxy version problem — Katsuyuki Komatsu <komatsu@...>

小松です.

16 messages 2000/09/20
[#10989] Re: httphead.rb proxy version problem — Minero Aoki <aamine@...> 2000/09/20

あおきです。

[ruby-dev:11063] Re: ruby-1.6.1-20000921-i386-cygwin and Thread

From: WATANABE Hirofumi <eban@...>
Date: 2000-09-25 11:01:14 UTC
List: ruby-dev #11063
わたなべです.

"Nobuyoshi.Nakada" <nobu.nakada@nifty.ne.jp> writes:

:  ちょっと試してみたら Console に対する HANDLE ってシフトキーとかでも 
:signaled になってしまうので、実際にデータが読めるか調べるためには 
:PeekConsoleInput() だか使わないといけないようです。なんか stdio 関係をほ
:とんど作り直すとかいう騒ぎになりそうな。

ほんとだ. 試しに適当に実験してみたらそうなりました.
Cygwin も PeekConsoleInput() を使ってますね.

-- 
わたなべひろふみ

--- win32/win32.c.orig	Mon Sep 25 15:54:33 2000
+++ win32/win32.c	Mon Sep 25 19:51:12 2000
@@ -1854,5 +1854,9 @@
 static int
-extract_file_fd(fd_set *set, fd_set *fileset)
+extract_file_fd(fd_set *set, fd_set *fileset, struct timeval *tv)
 {
     int idx;
+    int timeout = INFINITE;
+    
+    if (tv)
+	timeout = tv->tv_sec * 1000 + tv->tv_usec / 1000;
 
@@ -1866,3 +1870,10 @@
 	    int i;
-
+	    switch (WaitForSingleObject((HANDLE)fd, timeout)) {
+	    case WAIT_OBJECT_0:
+		break;
+	    case WAIT_TIMEOUT:
+	    	continue;
+	    case WAIT_FAILED:
+		return 0;
+	    }
 	    for (i = 0; i < fileset->fd_count; i++) {
@@ -1900,4 +1911,4 @@
     }
-    file_nfds = extract_file_fd(rd, &file_rd);
-    file_nfds += extract_file_fd(wr, &file_wr);
+    file_nfds = extract_file_fd(rd, &file_rd, timeout);
+    file_nfds += extract_file_fd(wr, &file_wr, timeout);
     if (file_nfds)

In This Thread