私は、クライアントソケットのセットを監視するこのスレッドを自分のアプリケーションに持っています。私はselect()
を使用して、クライアントがリクエストを行うまでブロックし、スレッドを増やすことなく効率的に処理できるようにします。ファイルへの書き込みをせずにselect()を実行します。desc?
クライアントのリストに新しいクライアントを追加すると、実際に新しいソケットをリッスンされたソケットに追加するために、タイムアウトがselect()
(10秒に設定)まで待たなければなりません。
select()
の前に、の前にクライアントをすぐに聴くことができるようにしたいと思います。
私はすでにそれを解決しています:私はいつも聞いたソケットリストに含まれているダミーのソケットペアを作成して、select()
のクラックを書くようにしていますが、もっと良い解決方法があると思っています。
編集:私が使用したglibcが古すぎるので 私はeventfd()
にはアクセスできません(と私はそれを更新する平均を持っていません)。ですから、私はfifoやソケットを使わなければならないかもしれません。
ご存知ですか?
ありがとうございます!
あなたは 'pthread_kill'などでスレッドを終了させてから再起動することができます... – jswolf19
それは...残念でしょうか? – Gui13