[#23640] net/http authentication — OZAWA Sakuro <crouton@...>
さくです。
[#23642] rescue-ensure behavior diff between 1.4 and 1.5 — "Kikutani, Makoto" <kikutani@...>
下のコードを実行すると
[#23659] KCODE and regexp — "Kikutani, Makoto" <kikutani@...>
ストリングの中の特定のポイントがEUC2バイト文字泣き別れかどうか
On Mon, 3 Jul 2000 04:17:26 +0900,
[#23670] crontab.rb で「?」 — Atsuko Yoshida <Atsuko_Yoshida@...21.fxis.fujixerox.co.jp>
こんにちは。どなたか覚えていてくれたらとってもうれしい、お久しぶりのあつ
[#23687] file から読み込んだ文字列の #{} — HIGAKI Masaru (ひがき まさる) <mash@...>
ひがきといいます。
[#23693] 与えられた文字列を変数名にする方法 — Yamada Kenji <kyamada@...>
[#23707] Time#usec — ARIMA Yasuhiro <fit0298@...>
有馬です。
[#23713] sybct expired? — KUSUNOKI Masanori <masanori@...>
楠です。
[#23731] environment variables — nobu.nakada@...
なかだです。
[#23743] TCPServer & Thread — とみたまさひろ <tommy@...>
とみたです。
こんにちは。鈴木教郎です。
あおきです。
[#23749] RubyTalk — とみたまさひろ <tommy@...>
とみたです。
なかだです。
[#23796] dRuby — Kazuhiro NISHIYAMA <zn@...>
raaにあるものについてはruby-extの方がいいんでしょうか?
[#23801] scan regexp w/ w/o parenthesis — "Kikutani, Makoto" <kikutani@...>
s = 'aaa bbb ccc'
[#23805] net/smtp — 佐藤 大輔 <densuke@...2.so-net.ne.jp>
佐藤です。
まつもと ゆきひろです
佐藤です。
まつもと ゆきひろです
あおきです。
まつもと ゆきひろです
わたなべです.
阿部です。こんにちわ
まつもと ゆきひろです
阿部です。
[#23840] Re: 紅玉すうぉっち Again — Kazuhiro NISHIYAMA <zn@...>
掲示板とかが無かったのでruby-listに :-)
[#23864] ruby-1.4.5 がビルドできません、 cygwin1.1 で — Keishi Ooshio <o-keishi@...>
はじめまして。cygwin版のrubyを使ってJw-cadの外部変形などを作っていい
[#23867] net/smtp での ready 中の進捗状況把握 — Yukihiko Eda <eda@...>
江田です。
[#23870] media watch 2000.07.(18-1) — Noritsugu Nakamura <nnakamur@...>
[#23884] アスタリスクの正規表現 — "Matsuhisa, Takashi" <matsuhisa@...>
はじめまして、
[#23890] Ruby Entry Package and cygwin1.dll — Noritsugu Nakamura <nnakamur@...>
わたなべです.
小松です。
わたなべです.
小松です。
わたなべです.
小松です。
わたなべです.
[#23901] backslash notation in regexp ?? — Yuji Shigehiro <sigehiro@...>
重弘と申します.
[#23907] Ruby の開発環境 — ikjun <ikjun@...>
ここでは最初に本名を名乗ることが多いようですので、それに従わせて
[#23922] flush deflate buffer with Ruby/zlib — Tanaka Akira <akr@...17n.org>
Ruby/zlib の Deflate で圧縮を試みているのですが、ひとつよくわからない
うえの@ぶるーすかいです。
In article <20000720123857-664W.unnie@blue.sky.or.jp>,
[#23923] Re: [ruby-dev:10353] Re: should prohibit `module_function' for class Class — Masatoshi SEKI <m_seki@...>
まつもと ゆきひろです
[#23934] loop 中での File の使いかた — Kengo Nakajima <ringo@...>
こんにちは
In message "[ruby-list:23934] loop 中での File の使いかた"
中嶋です。
ごとけんです
[#23940] String#unpack と scanf の関係 — kiwamu <kiwamu@...>
こんにちは。岡部@東京都立大学と申します。
福嶋です。
こんにちは。岡部です。
福嶋です。
Thu, Jul 20, 2000 at 08:44:42PM +0900 において
皆さん今晩は、田鎖です。
[#23951] 過去の記事をダウンロード — ikjun <ikjun@...>
池田純一です。
[#23993] C MAGAZINE — gotoken@... (GOTO Kentaro)
ごとけんです
[#24009] SMTP server (mail filter proxy) — Hideto ISHIBASHI <hideto-i@...4u.or.jp>
こんにちは。石橋"rubyholic"秀仁です。
いわおかです。ちょっと後向きかもしれませんが、
石橋"rubyholic"秀仁です。
[#24026] OpenStep — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#24038] win32ole — Koji Arai <JCA02266@...>
新井です。
[#24049] mod_ruby/eruby/header — OZAWA -Crouton- Sakuro <crouton@...>
さく@晴空號です。
[ruby-list:23652] Re: [mswin32] Ctrl-C while socket operation (Re: Ruby 1.4.5)
小松です。
In the message of [ruby-list:23631]
on 2000/7/1 11:50 "Shigeo Kobayashi" <shigeo@tinyforest.gr.jp> wrote:
> しっかりつっこまれると思っていました。 ^^;;;
せっかく期待していただいたのに、遅くなってしまって (笑)。
> ただ、CTRL+C は別にしても、(UNIX では pthread
> 等)マルチスレッド環境では select が戻って来ない
> と、全てのスレッドをきれいにシャットダウンできま
> せん。
Rubyの方のaccept()中にCtrl-Cを押すと落ちる問題は、
Ctrl-Cを通知するために新規のスレッドが生成されて、
一気にマルチ (native) スレッド問題になっている
という点で同様です。
> ノンブロッキングモードにするかタイムアウト後に
> ポーリングする以外の方法を考えつかないので
> 私は、以下のようなやり方をよく使います。
そうですね。この形にすることもよくあります。
win32/win32.cのmyaccept()をこの形にするとだいたい
以下のようになるでしょう。timeoutは100msにしてみました。
# TRAP_BEG, TRAP_END, CHECK_INTSの使い方は自信無し。
どんなもんでしょう?
2.のすぐに止まらない件もmyselect()の中で同様に
しましょうか?
Win32だけなら、ソケットに対してWSACreateEvent()と
WSAEventSelect()を使ってイベントを作って、例の中の
DidUserRequestGlobalShutdown()もイベント通知にして、
WaitForMultipleObjects()のシリーズのAPIでそれらの
イベントを待つという形にすることも多いです。
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 Sun Jul 2 11:45:11 2000
@@ -13,2 +13,3 @@
#include "ruby.h"
+#include "rubysig.h"
#include <fcntl.h>
@@ -1890,2 +1891,6 @@ myaccept (SOCKET s, struct sockaddr *add
SOCKET r;
+ int rc;
+ fd_set rd_set;
+ struct timeval tv;
+ int trap_immediate = rb_trap_immediate;
@@ -1894,4 +1899,29 @@ myaccept (SOCKET s, struct sockaddr *add
}
- if ((r = accept (TO_SOCKET(s), addr, addrlen)) == INVALID_SOCKET)
- errno = WSAGetLastError();
+
+ TRAP_END;
+ for (;;) {
+ FD_ZERO(&rd_set);
+ myfdset(s, &rd_set);
+ tv.tv_sec = 0; tv.tv_usec = 100000; /* 100 [ms] */
+ rc = myselect(1, &rd_set, 0, 0, &tv);
+ if (rc < 0) {
+ errno = WSAGetLastError();
+ if (WSAGetLastError() == WSAEWOULDBLOCK)
+ continue;
+ r = INVALID_SOCKET;
+ break;
+ }
+ if (rc > 0) {
+ r = accept(TO_SOCKET(s), addr, addrlen);
+ if (r == INVALID_SOCKET) {
+ errno = WSAGetLastError();
+ if (WSAGetLastError() == WSAEWOULDBLOCK)
+ continue;
+ }
+ break;
+ }
+ CHECK_INTS;
+ }
+ if (trap_immediate)
+ TRAP_BEG;
return r;
--
小松克行 / Katsuyuki Komatsu <komatsu@sarion.co.jp>