|
sylpheed-jp:1102
From: Hiroyuki Yamamoto <yamamoto@xxxxxxxxxx> 山本です。 On Wed, 17 Oct 2001 13:05:50 +0900 HIRAMATU Masami <hiramatu@xxxxxxxxxx> wrote: > On Wed, 17 Oct 2001 12:49:12 +0900 > KATAYAMA Kenichiro <katayama@xxxxxxxxxx> wrote: > > > これを解消するために、fcntl(2)によってソケットを非停止(non-blocking)モード > > に設定し、connect(2)をコールしたソケットをgdk_input_add()に放り込んでしま > > うというのは如何でしょうか。 > > > > 確かかなり前にこの機能は実装されていると思います。 > コードがあるだけかもしれませんが。 いずれにしても gethostbyname(), getaddrinfo() で固まってしまうので、 結局あんまり効果がないということで今は使われていないような(^^; Windows への移植を考えたときも面倒らしいですし(Werner Koch氏談)。 本質的な解決法としてはネットワーク回りを別スレッド/プロセスにしてしまう 必要があると思います。 # 今はデータ転送中一定間隔で GTK+ のイベントを flush して強引に # マルチタスクしているというアレゲな状態なので(^^; -- Hiroyuki Yamamoto <yamamoto@xxxxxxxxxx> http://www.good-day.co.jp/ (Good-Day) http://www.good-day.net/ (Good-Day.NET) http://sylpheed.good-day.net/ (Sylpheed) 1100 2001-10-17 12:49 [katayama@xxxxxxxxxx ] connect(2) のブロックについて 1101 2001-10-17 13:05 ┗[hiramatu@xxxxxxxxxx ] -> 1102 2001-10-17 13:16 ┗[yamamoto@xxxxxxxxxx ] 1110 2001-10-19 01:37 ┗[katayama@xxxxxxxxxx ] |