タグ

ブックマーク / unau.hatenadiary.org (1)

  • AnyEvent + Coro での並行ダウンローダの習作 その 2 - 昨日知ったこと

    AnyEvent + Coro での並行ダウンローダの習作 - 昨日知ったことの続き。 前回のスクリプトでは、処理が進むにつれセマフォの数が増えていってしまうことが問題だった。セマフォのカウンタが元に戻ったら、そのセマフォを delete できれば一定数以上セマフォが増えないのだが、そのようなスクリプトは書けないし、書けたとしてもセマフォ生成のコストはかかってしまう。 AnyEvent::HTTP での同時接続数の制限 AnyEvent::HTTP で同一ホストに対する同時接続数を制限しているのだから、それを参考にすればいい、と早速ソースを覗いてみた。どうやら _slot_schedule という関数でその辺のことをやっているっぽい。 sub _slot_schedule; sub _slot_schedule($) { my $host = shift; while ($CO_SLOT{

    AnyEvent + Coro での並行ダウンローダの習作 その 2 - 昨日知ったこと
  • 1