[#23031] description on fork and Process.fork — kjana@... (YANAGAWA Kazuhisa)

マニュアルみてて思ったんですけど,fork の記述に「失敗したら例外があが

21 messages 2000/06/02
[#23114] Re: description on fork and Process.fork — Takahiro Kambe <taca@...> 2000/06/08

In message <200006021503.AAA19483@mail3.os.xaxon.ne.jp>

[#23136] Re: description on fork and Process.fork — kjana@... (YANAGAWA Kazuhisa) 2000/06/09

In message <200006081406.e58E6JA16512@edge.sky.yamashina.kyoto.jp>

[#23138] Re: description on fork and Process.fork — Takahiro Kambe <taca@...> 2000/06/09

In message <200006091328.WAA23409@mail2.os.xaxon.ne.jp>

[#23139] Re: description on fork and Process.fork — matz@... (Yukihiro Matsumoto) 2000/06/09

まつもと ゆきひろです

[#23148] Re: description on fork and Process.fork — ARIMA Yasuhiro <fit0298@...> 2000/06/11

有馬です。

[#23150] Re: description on fork and Process.fork — Koji Arai <JCA02266@...> 2000/06/11

新井です。

[#23096] http.rb will change — Minero Aoki <aamine@...>

あおきです。

42 messages 2000/06/08
[#23100] Re: http.rb will change — matz@... (Yukihiro Matsumoto) 2000/06/08

まつもと ゆきひろです

[#23101] Re: http.rb will change — TAKAHASHI Masayoshi <maki@...> 2000/06/08

高橋征義です。

[#23103] Re: http.rb will change — matz@... (Yukihiro Matsumoto) 2000/06/08

まつもと ゆきひろです

[#23109] Re: http.rb will change — Wakou Aoyama <wakou@...> 2000/06/08

青山です。

[#23113] Re: http.rb will change — TAKAHASHI Masayoshi <maki@...> 2000/06/08

高橋です。

[#23124] Re: http.rb will change — Wakou Aoyama <wakou@...> 2000/06/08

青山です。

[#23130] Re: http.rb will change — TAKAHASHI Masayoshi <maki@...> 2000/06/09

高橋征義です。

[#23131] Re: http.rb will change — Wakou Aoyama <wakou@...> 2000/06/09

青山です。

[#23135] Re: http.rb will change — Minero Aoki <aamine@...> 2000/06/09

あおきです。

[#23149] Re: http.rb will change — TAKAHASHI Masayoshi <maki@...> 2000/06/11

高橋征義です。

[#23174] Re: http.rb will change — Minero Aoki <aamine@...> 2000/06/12

あおきです。

[#23125] メソッドの中の動きを変える — Masahiro Kawata <kawata@...>

こんにちわ。かわた まさひろと申します。

11 messages 2000/06/09

[#23156] ports — Wakou Aoyama <wakou@...>

青山です。

37 messages 2000/06/11
[#23194] Re: ports — kenn@... 2000/06/12

長沢です。

[#23199] Re: ports — Wakou Aoyama <wakou@...> 2000/06/12

青山です。

[#23268] Re: ports — Noritsugu Nakamura <nnakamur@...> 2000/06/15

[#23273] Re: ports — Wakou Aoyama <wakou@...> 2000/06/15

青山です。

[#23278] Re: ports — Noritsugu Nakamura <nnakamur@...> 2000/06/15

[#23279] Re: ports — Wakou Aoyama <wakou@...> 2000/06/15

青山です。

[#23280] Re: ports — matz@... (Yukihiro Matsumoto) 2000/06/15

まつもと ゆきひろです

[#23282] Re: ports — Wakou Aoyama <wakou@...> 2000/06/16

青山です。

[#23289] RD on www.ruby-lang.org (Re: ports) — Wakou Aoyama <wakou@...> 2000/06/16

青山です。

[#23291] Re: RD on www.ruby-lang.org (Re: ports) — matz@... (Yukihiro Matsumoto) 2000/06/16

まつもと ゆきひろです

[#23293] Re: RD on www.ruby-lang.org (Re: ports) — Wakou Aoyama <wakou@...> 2000/06/16

青山です。

[#23222] readablity of RD — TAKAHASHI Masayoshi <maki@...>

高橋征義です。

78 messages 2000/06/13
[#23224] Re: readablity of RD — rubikitch <rubikitch@...> 2000/06/13

From: TAKAHASHI Masayoshi <maki@inac.co.jp>

[#23234] Re: readablity of RD — TAKAHASHI Masayoshi <maki@...> 2000/06/14

高橋征義です。

[#23246] Re: readablity of RD — Kenya Ogata <k_ogata@...> 2000/06/14

おがたといいます。

[#23255] Re: readablity of RD — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/06/14

Toshです。

[#23271] Re: readablity of RD — Kenya Ogata <k_ogata@...> 2000/06/15

おがたです。いくつか考えうる解決案を。

[#23275] Re: readablity of RD — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/06/15

Toshです。

[#23295] Re: readablity of RD — Wakou Aoyama <wakou@...> 2000/06/16

青山です。

[#23296] Re: readablity of RD — Wakou Aoyama <wakou@...> 2000/06/16

青山です。

[#23307] Re: readablity of RD — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/06/17

Toshです。

[#23310] Re: readablity of RD — Wakou Aoyama <wakou@...> 2000/06/17

青山です。

[#23320] Re: readablity of RD — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/06/17

Toshです。

[#23328] Re: readablity of RD — Wakou Aoyama <wakou@...> 2000/06/17

青山です。

[#23335] Re: readablity of RD — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/06/18

Toshです。

[#23349] Re: readablity of RD — Wakou Aoyama <wakou@...> 2000/06/18

青山です。

[#23470] Re: readablity of RD — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/06/22

Toshです。

[#23471] Re: readablity of RD — matz@... (Yukihiro Matsumoto) 2000/06/22

まつもと ゆきひろです

[#23563] Re: readablity of RD — Wakou Aoyama <wakou@...> 2000/06/27

青山です。

[#23570] Re: readablity of RD — matz@... (Yukihiro Matsumoto) 2000/06/28

まつもと ゆきひろです

[#23600] Re: readablity of RD — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/06/29

Toshです。

[#23603] Re: readablity of RD — Yasunari Momoi <momo@...> 2000/06/29

From: Toshiro Kuwabara <toshirok@yb3.so-net.ne.jp>

[#23605] Re: readablity of RD — matz@... (Yukihiro Matsumoto) 2000/06/29

まつもと ゆきひろです

[#23611] Re: readablity of RD — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/06/29

Toshです。

[#23235] nkf MIME space handling — "Kikutani, Makoto" <kikutani@...>

nkfモジュールは、MIMEのデコードもしてくれますが、

13 messages 2000/06/14

[#23410] Re: DBMS and ruby CGI — "Kahori Takeuchi" <EB89012@...>

14 messages 2000/06/21

[#23411] dump a single object — Hideto ISHIBASHI <hideto-i@...4u.or.jp>

石橋"rubyholic"秀仁です。

34 messages 2000/06/21
[#23412] Re: dump a single object — matz@... (Yukihiro Matsumoto) 2000/06/21

まつもと ゆきひろです

[#23424] Re: dump a single object — Masatoshi SEKI <m_seki@...> 2000/06/21

[#23434] Re: dump a single object — Hideto ISHIBASHI <hideto-i@...4u.or.jp> 2000/06/21

石橋"rubyholic"秀仁です。咳さん、こんばんわ。

[#23437] Re: dump a single object — Masatoshi SEKI <m_seki@...> 2000/06/21

[#23485] Ruby 1.4.5 — matz@... (Yukihiro Matsumoto)

Ruby 1.4.5 is out, check out:

35 messages 2000/06/23
[#23489] Re: Ruby 1.4.5 — Katsuyuki Komatsu <komatsu@...> 2000/06/23

小松です。

[#23495] Re: Ruby 1.4.5 — matz@... (Yukihiro Matsumoto) 2000/06/23

まつもと ゆきひろです

[#23518] Re: Ruby 1.4.5 — MICHIMURA Tadao <MICHIMURA.Tadao@...> 2000/06/26

どぉも、道村です。

[#23521] Re: Ruby 1.4.5 — Katsuyuki Komatsu <komatsu@...> 2000/06/26

小松です。

[#23522] Re: Ruby 1.4.5 — Katsuyuki Komatsu <komatsu@...> 2000/06/26

小松です。

[ruby-list:23522] Re: Ruby 1.4.5

From: Katsuyuki Komatsu <komatsu@...>
Date: 2000-06-26 13:34:24 UTC
List: ruby-list #23522
小松です。

In the message of [ruby-list:23521] Re: Ruby 1.4.5
    on 2000/6/26 20:19:43 Katsuyuki Komatsu <komatsu@sarion.co.jp> wrote:

|    select()がWSAENOTSOCKのエラーになった場合、ソケット以外のハンドル
|    のみ読み込み可/書き込み可とみなす
|
|といったインプリメントに変える必要があります。

こんな感じです。
1.5.4も同様です。

Mon Jun 26 22:20:03 2000  Katsuyuki Komatsu  <komatsu@sarion.co.jp>

	* win32/win32.c (is_socket, extract_file_fd): New function.

	* win32/win32.c (myfdopen): use is_socket().

	* win32/win32.c (myselect): return non socket files immediately
	  if file and socket handles are mixed.

diff -ru1p ruby-1.4.5.dist/win32/win32.c ruby-1.4.5/win32/win32.c
--- ruby-1.4.5.dist/win32/win32.c	Fri Feb 18 15:58:58 2000
+++ ruby-1.4.5/win32/win32.c	Mon Jun 26 22:20:03 2000
@@ -1591,4 +1591,4 @@ my_open_osfhandle(long osfhandle, int fl
 
-FILE *
-myfdopen (int fd, const char *mode)
+static int
+is_socket(SOCKET fd)
 {
@@ -1597,9 +1597,5 @@ myfdopen (int fd, const char *mode)
     int retval;
-    int fh;
-    extern int errno;
 
-    //fprintf(stderr, "myfdopen()\n");
-
-	optlen = sizeof(sockbuf);
-    retval = getsockopt((SOCKET)fd, SOL_SOCKET, SO_TYPE, sockbuf, &optlen);
+    optlen = sizeof(sockbuf);
+    retval = getsockopt(fd, SOL_SOCKET, SO_TYPE, sockbuf, &optlen);
     if (retval == SOCKET_ERROR) {
@@ -1609,3 +1605,3 @@ myfdopen (int fd, const char *mode)
 	if (iRet == WSAENOTSOCK || iRet == WSANOTINITIALISED)
-	    return (_fdopen(fd, mode));
+	    return FALSE;
     }
@@ -1616,4 +1612,17 @@ myfdopen (int fd, const char *mode)
 
+    return TRUE;
+}
+
+FILE *
+myfdopen (int fd, const char *mode)
+{
+    if (is_socket((SOCKET)fd)) {
+	int fh;
+
 	fh = my_open_osfhandle((SOCKET)fd, O_RDWR|O_BINARY);
-    return _fdopen(fh, mode);		// return file pointer
+	return _fdopen(fh, mode);		// return file pointer
+    }
+    else {
+	return (_fdopen(fd, mode));
+    }
 }
@@ -1759,2 +1768,32 @@ static int NtSocketsInitialized = 0;
 
+static int
+extract_file_fd(fd_set *set, fd_set *fileset)
+{
+    int idx;
+
+    fileset->fd_count = 0;
+    if (!set)
+	return 0;
+    for (idx = 0; idx < set->fd_count; idx++) {
+	SOCKET fd = set->fd_array[idx];
+
+	if (!is_socket(fd)) {
+	    int i;
+
+	    for (i = 0; i < fileset->fd_count; i++) {
+		if (fileset->fd_array[i] == fd) {
+		    break;
+		}
+	    }
+	    if (i == fileset->fd_count) {
+		if (fileset->fd_count < FD_SETSIZE) {
+		    fileset->fd_array[i] = fd;
+		    fileset->fd_count++;
+		}
+	    }
+	}
+    }
+    return fileset->fd_count;
+}
+
 long 
@@ -1764,2 +1803,6 @@ myselect (int nfds, fd_set *rd, fd_set *
     long r;
+    fd_set file_rd;
+    fd_set file_wr;
+    int file_nfds;
+
     if (!NtSocketsInitialized++) {
@@ -1771,2 +1814,12 @@ myselect (int nfds, fd_set *rd, fd_set *
     }
+    file_nfds = extract_file_fd(rd, &file_rd);
+    file_nfds += extract_file_fd(wr, &file_wr);
+    if (file_nfds)
+    {
+	// assume normal files are always readable/writable
+	// fake read/write fd_set and return value
+	if (rd) *rd = file_rd;
+	if (wr) *wr = file_wr;
+	return file_nfds;
+    }
     if ((r = select (nfds, rd, wr, ex, timeout)) == SOCKET_ERROR) {
@@ -1776,18 +1829,2 @@ myselect (int nfds, fd_set *rd, fd_set *
 	    errno = EINTR;
-	    break;
-	case WSAENOTSOCK:
-	    // assume normal files are always readable/writable
-	    // fake read/write fd_set and return value
-	    r = 0;
-	    if (rd) r += rd->fd_count;
-	    if (wr) r += wr->fd_count;
-	    if (ex && ex->fd_count > 0) {
-		// exceptional condition never happen for normal files
-		if (r > 0)
-		    ex->fd_count = 0;
-		else {
-		    errno = EBADF;
-		    r = SOCKET_ERROR;
-		}
-	    }
 	    break;

--
小松克行 / Katsuyuki Komatsu <komatsu@sarion.co.jp>

In This Thread