概要
AnyEvent::Handleを使っていて困ったことについて。
本文
on_readやpush_readしていない場合など、read watcher が止まっている時は、クライアント切断時にon_errorやon_eofが即座には呼ばれず、push_writeした時になる。さらに、push_writeしなければ、ずっとエラーを検出できない。対策:手動でstart_readしておく。
独自のwbuf(write buffer), rbuf(read buffer)を持っているので、いったん使い始めたら、途中で使うのをやめる時には注意が必要。
push_shutdownはon_drainを上書きする。on_readとpush_readは別々に存在できたのに困る。内部にwrite queueが存在しないのが原因。
0 コメント:
コメントを投稿