POE::Component::Client::TCP BK

| コメント(0) | トラックバック(0)
はまったのでメモ。POE::Component::Client::TCPのPODに$heap->{server}にPOE::Wheel::ReadWriteが入ってるとあるが、これは実は100%真実ではない。POE::Component::Client::TCPのセッションにpost()するとタイミングによってはこの$heap->{server}には違うものが入っている(POE::Wheel::SocketFactory)。

なのでここ$heap->{server}がdefinedかどうかなんて調べてもしょうがない。ここは$heap->{connected}を見る。

sub _send {
  my $stuff_to_send = $_[ARG0];
  if (! $_[HEAP]->{connected} && ! $_[HEAP]->{shutdown}) {
    # 接続するまで待つなら、ね。
    $_[KERNEL]->yield( $_[ARG0] );
    return;
  }
  $_[HEAP]->put( $stuff_to_send );
}

Author

Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)

#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar


このエントリーをはてなブックマ
ークに追加

翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ