タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

pthreadに関するcointoss1973のブックマーク (1)

  • スレッド間通信のオーバーヘッドを比較する - Blog by Sadayuki Furuhashi

    pthread_系の関数は mutex か cond しか待てないが、select/poll/epoll はファイルディスクリプタしか待てないので、両方待ちたいときに困る。 解決方法はいろいろあると思いますが、私の思いつく範囲では以下の4つ。 selectで待ち、シグナルで割り込む ファイルディスクリプタはselectで待つ。他のイベントはいったんキューに入れておき、シグナルを発生させてselectを中断させる。たしかlighttpdはこの方式だったはず。ただlighttpdはシングルスレッドなのでキューは使っていなかったような(うろ覚え) selectで待ち、パイプで割り込む selectで待つのだが、その中にpipe(2)で作ったパイプを1つわせておく。ファイルディスクリプタ以外のイベントはいったんキューに入れておき、パイプに1バイト書き込んでselectを中断させる。 select

    スレッド間通信のオーバーヘッドを比較する - Blog by Sadayuki Furuhashi
  • 1