[#23805] net/smtp — 佐藤 大輔 <densuke@...2.so-net.ne.jp>

佐藤です。

26 messages 2000/07/12
[#23806] Re: net/smtp — matz@... (Yukihiro Matsumoto) 2000/07/12

まつもと ゆきひろです

[#23808] Re: net/smtp — 佐藤 大輔 <densuke@...2.so-net.ne.jp> 2000/07/12

佐藤です。

[#23809] Re: net/smtp — matz@... (Yukihiro Matsumoto) 2000/07/12

まつもと ゆきひろです

[#23811] Re: net/smtp — Minero Aoki <aamine@...> 2000/07/12

あおきです。

[#23812] Re: net/smtp — matz@... (Yukihiro Matsumoto) 2000/07/12

まつもと ゆきひろです

[#23890] Ruby Entry Package and cygwin1.dll — Noritsugu Nakamura <nnakamur@...>

25 messages 2000/07/18
[#23895] Re: Ruby Entry Package and cygwin1.dll — WATANABE Hirofumi <eban@...> 2000/07/18

わたなべです.

[#23896] Re: Ruby Entry Package and cygwin1.dll — Noritsugu Nakamura <nnakamur@...> 2000/07/18

[#23897] Re: Ruby Entry Package and cygwin1.dll — Katsuyuki Komatsu <komatsu@...> 2000/07/19

小松です。

[#23898] Re: Ruby Entry Package and cygwin1.dll — WATANABE Hirofumi <eban@...> 2000/07/19

わたなべです.

[#23899] Re: Ruby Entry Package and cygwin1.dll — Katsuyuki Komatsu <komatsu@...> 2000/07/19

小松です。

[#23923] Re: [ruby-dev:10353] Re: should prohibit `module_function' for class Class — Masatoshi SEKI <m_seki@...>

11 messages 2000/07/19

[#23940] String#unpack と scanf の関係 — kiwamu <kiwamu@...>

こんにちは。岡部@東京都立大学と申します。

16 messages 2000/07/20

[ruby-list:23680] Re: [mswin32] Ctrl-C while socket operation (Re: Ruby 1.4.5)

From: Katsuyuki Komatsu <komatsu@...>
Date: 2000-07-03 14:58:38 UTC
List: ruby-list #23680
小松です。

In the message of [ruby-list:23671]
    on 2000/7/3 MICHIMURA Tadao <MICHIMURA.Tadao@fujixerox.co.jp> wrote:

> shigeo> 話が元に戻って大変恐縮なのですが、私自身
> shigeo> は通信中に Ctrl+C で中止というのは好みでは
> shigeo> ないので今のままでも気になりません。
> shigeo> むしろ、いっそのこと(通信中に限っては)
> shigeo>  Ctrl+C は無視したい気分です。
> shigeo> (終了は、コマンドを別途送信)
> 
> 自分もこの意見に賛成です。とりあえずワークアラウンド(別のスレッドで
> sleepする)もあるようですから、今のところ不便はないです。終了したけれ
> ば、タスクマネージャから「プロセスの終了」をすればよいわけですし。

それでよければ、accept()とselect()ではCtrl-Cをdisableする
ようにして"unknown software exception (0xc0000029)"を回避
するだけにしましょうか。

あんまり積極的にすすめたくはないけど、落ちるよりはましという
レベルなので、採用の判断は道村さんや小林さんにおまかせしたいです。

> Windows Socket 1.1では、WSACancelBlockingCallを使って「WSAEINTR」と
> いうエラーが上がるようになっていたはずですが、2.0になって削除されて
> しまったんですね。

そんなのあったのか……知りませんでした。

Mon Jul  3 23:46:56 2000  Katsuyuki Komatsu  <komatsu@sarion.co.jp>

	* win32/win32.c (myselect, myaccept): disable interrupt while
	  executing accept() or select() to avoid Ctrl-C causes
	  "unknown software exception (0xc0000029)".

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	Tue Jun 27 14:42:14 2000
+++ ruby-1.4.5/win32/win32.c	Mon Jul  3 23:46:56 2000
@@ -13,2 +13,3 @@
 #include "ruby.h"
+#include "rubysig.h"
 #include <fcntl.h>
@@ -1825,2 +1826,3 @@ myselect (int nfds, fd_set *rd, fd_set *
     int file_nfds;
+    int trap_immediate = rb_trap_immediate;
 
@@ -1843,2 +1845,4 @@ myselect (int nfds, fd_set *rd, fd_set *
     }
+    if (trap_immediate)
+	TRAP_END;
     if ((r = select (nfds, rd, wr, ex, timeout)) == SOCKET_ERROR) {
@@ -1851,2 +1855,4 @@ myselect (int nfds, fd_set *rd, fd_set *
     }
+    if (trap_immediate)
+	TRAP_BEG;
     return r;
@@ -1890,2 +1896,3 @@ myaccept (SOCKET s, struct sockaddr *add
     SOCKET r;
+    int trap_immediate = rb_trap_immediate;
 
@@ -1894,4 +1901,8 @@ myaccept (SOCKET s, struct sockaddr *add
     }
+    if (trap_immediate)
+	TRAP_END;
     if ((r = accept (TO_SOCKET(s), addr, addrlen)) == INVALID_SOCKET)
 	errno = WSAGetLastError();
+    if (trap_immediate)
+	TRAP_BEG;
     return r;

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

In This Thread