[#28677] `Socket#unpack_sockaddr_un': sockaddr_un size differs - 15 required; 110 given (TypeError) — Tanaka Akira <akr@...17n.org>
ふと気がついたのですが、Socket.unpack_sockaddr_un に
[#28681] ブロックパラメータと多値について — Takaaki Tateishi <ttate@...>
まつもと ゆきひろです
[#28689] digest.rb — Tanaka Akira <akr@...17n.org>
require 'digest/sha2' の sha2 がどうも余計に思えるので、
久しぶりに復帰。
In article <863bav6a0w.knu@iDaemons.org>,
[#28694] test/socket for Windows — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#28700] irb/init.rb code suggestion to find user's home directory in windows — keiju@... (Keiju ISHITSUKA)
けいじゅ@いしつかです.
[#28708] 1.8.5 release schedule? — URABE Shyouhei <root@...>
というわけで今日の基調講演で8月に1.8.5が出ることになったわけですが。
まつもと ゆきひろです
卜部です。
卜部です。
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
とみたです。
とみたです。
卜部です。
柳田です。
In article <y7vnup05.wl%yanagi@shakenbu.org>,
> いちおう問題の切り分けをするために確認したいんですが、その環
In article <veqrun77.wl%yanagi@shakenbu.org>,
mswin32 版ではどうなるのだろうと思って
Cygwin @ WindowsXP SP2 です。
In article <449D66EC.8050405@cyanet.jp>,
send の第一引数が mesg なので変わって当然でした orz
Cで書いたプログラムで127.0.0.1に向かって空データを送ったところ無事届きま
ruby が 0.0.0.0 で待ち受けて、C言語プログラムで 127.0.0.1 に空パケットを
下記の通り Winsock2 を使わずにC言語でプログラムを書いて、空パケットを投
In article <449D921F.8080109@cyanet.jp>,
永井@知能.九工大です.
永井@知能.九工大です.
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
卜部です。
こんにちは、なかむら(う)です。
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
卜部です。
In article <1155082949.798513.13047.nullmailer@x31.priv.netlab.jp>,
[#28715] several problems on the big commit — Tanaka Akira <akr@...17n.org>
件の大きなコミットをざっと眺めてみたのですが、
[#28718] binding の仕様変更? or バグ? — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
[#28720] IO.readとバイナリモード — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#28729] backport Process.getrlimit and Process.setrlimit to 1.8 — Tanaka Akira <akr@...17n.org>
何回か (chkbuild で CPU 時間を制限するとか、cgi で CPU 時間
まつもと ゆきひろです
大原です。
[#28741] not ok iterator 80 -- ./sample/test.rb:1104 — Tanaka Akira <akr@...17n.org>
sample/test.rb が 2つ失敗していますが、最初の失敗は次のものです。
[#28744] rational 1.08 — Tadayoshi Funaba <tadf@...>
ふなばです。
原です。
ふなばです。
まつもと ゆきひろです
まつもと ゆきひろです
原です。
[#28747] lack in pp — Tadashi Saito <shiba@...2.accsnet.ne.jp>
こんにちは。斎藤と申します。
[#28770] signal & native-thread — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
[#28778] GC problem (?) in 1.8 — URABE Shyouhei <root@...>
卜部です。
In article <449851E1.9030302@mput.dip.jp>,
[#28786] "abc"[3] returns "" — Tanaka Akira <akr@...17n.org>
test-all が
[#28805] `DRb::DRbMessage#recv_request': uninitialized constant DRb::DRbMessage::Values (NameError) — Tanaka Akira <akr@...17n.org>
[ruby-dev:28802] のパッチがあたると、次はこうです。
[#28812] test_return_trace_func(TestIterator): /tmp/19/lib/ruby/1.9/test/unit.rb:275: ArgumentError — Tanaka Akira <akr@...17n.org>
で、次は
[#28822] when *a — Minero Aoki <aamine@...>
青木です。
[#28840] SEGV by block.call — Tanaka Akira <akr@...17n.org>
どうも boron での SEGV が直らないので、
[#28875] rb_define_methods — SASADA Koichi <ko1@...>
ささだです。
卜部です。
まつもと ゆきひろです
[ruby-dev:28698] nonblocking socket operation on Windows (Re: test/socket for Windows)
こんにちは、なかむら(う)です。
In message "[ruby-dev:28694] test/socket for Windows"
on Jun.07,2006 15:12:25, <usa@garbagecollect.jp> wrote:
| 最近のsocket周りのテストを実行していて、Windowsでいろいろ問題
| があるということに気付きました。
| 最大の問題は read_nonblock と write_nonblock で固まっちゃうと
| いうものなのですが、これはこっちの問題なのでとりあえず置いて
| おきます(置いておいていい話でもないんですが...)。
今回は、前回置いておいたこっちの話の方です。
Windowsでは、ファイルデスクリプタに対してノンブロッキングモー
ドを設定できたりはしないのですが、ソケットは特別扱いとしてそ
れが可能になっています。
しかし、Windowsではファイルデスクリプタ(Cランタイムが管理して
います)とソケット(OSが管理しています)は全くの別物なので、Ruby
の実装ではこの辺をうまくごまかして、ソケットとファイルデスク
リプタを無理矢理結びつけることによって、Ruby本体側のコードが
この問題を気にせずに取り扱えるようにしてあります。
さて、Cランタイムのread()/write()は、いんちきファイルデスクリ
プタを使ってソケットを渡されてもそれなりに正しく動作します。
しかし、read()/write()は元々ソケットが渡されることを想定して
作られてはいないので、ノンブロッキングモードの存在をまったく
知りません。
ソケットに対するread_nonblock、write_nonblockも、結局内部では
read()/write()を使っているので、そこであえなくブロックしてし
まうわけです。
以上が問題の背景です。
さて、ソケットのことなんか知らないread()/write()を使うから問
題が発生してるわけですから、ちゃんとソケットのことを知ってい
る何かを使えばこの問題は回避できます。
具体的には、recv()/send()を使えば、ノンブロッキングモード時に
はちゃんとブロックせずに動作します。
これでめでたしめでたし、と言いたいところなのですが、Windowsに
はテキストモード、バイナリモードというやっかいなものがありま
して、recv()/send()はテキストモードの存在を知りません。
以上を踏まえて、ご相談です。
いったいどうするのがよいでしょう?
(1) Windowsではread_nonblock、write_nonblockは諦めろ
(2) バイナリモードの時だけrecv()/send()を使え
(3) (2)に加えて、ノンブロッキングモードの時は自動的にバイナリ
モードにしろ
(4) (2)なんだけど、そもそもソケットはバイナリモード専用にしろ
(5) テキストモードをサポートしたrecv()/send()を書け
(6) その他の案があればどうぞ
それでは。
--
U.Nakamura <usa@garbagecollect.jp>
ぶんしょうながいよ