< :前の番号
^ :番号順リスト
> :次の番号
P :前の記事
N :次の記事
|<:スレッドの先頭
>|:次のスレッド
^ :返事先
_:自分への返事
>:同じ返事先を持つ記事(前)
<:同じ返事先を持つ記事(後)
---:分割してスレッド表示、再表示
| :分割して(縦)スレッド表示、再表示
~ :スレッドのフレーム消去
.:インデックス
..:インデックスのインデックス
まつもと ゆきひろです
In message "Re: [ruby-dev:26618] Re: [ruby-cvs] ruby/ext/socket, ruby, ruby: * ext/socket/socket.c (ruby_connect): break immediately if a"
on Thu, 28 Jul 2005 11:31:01 +0900, Tanaka Akira <akr / m17n.org> writes:
|> * ext/socket/socket.c (ruby_connect): break immediately if a
|> socket is non-blocking. [ruby-talk:111654]
|
|こういうように、nonblocking かどうかで挙動を変えるのは、socket をデフォ
|ルトで nonblocking にしようとしたときに非互換の原因になるのであまりよ
|くないんじゃないか、と思っています。
ふーむ、ここで初めて気がついたのですが(遅い)、デフォルトで
nonblockingにするということは、IOをnonblockingに設定しても各
メソッドはブロックする(かもしれない)ことを意味するんですね。
すでにあちこちそうなっていて文句も出てないということは気にし
なくても良いということなのかもしれませんが。
|また、Windows では F_GETFL がなくて、メソッドが呼ばれる前に
|nonblocking になっていたかどうかはわからないという話ですし。
|
|connect_nonblock とか新しいメソッドを作ったほうがいいんじゃないでしょ
|うか。そのメソッドの中で nonblocking にすることにすれば使う方としても
|fcntl を使わないでいいぶん簡単ですし、デフォルトで nonblocking にして
|も挙動が変化しないですし、F_GETFL も必要なくなりますし。
|
|名前が気に入らないかもしれませんが。
気に入りません。最悪というほどではないですが。
なにか良い名前がありませんかねえ。
あらゆるIOオペレーションをブロックせずに行いたいというニーズ
が本当にあるのであれば、OpenFile構造体のフラグとして追加する
(FMODE_BINMODEのように)という手もありますが、そこまでする必
要もないような気もします。
まつもと ゆきひろ /:|)