さまざまな種類のジョブを作成するためにさまざまなスレッドを使用するプロセスがあります。
そのようなスレッドの 1 つは、ブロックしない方法でプッシュ通知を送信する必要があります (そのため、マルチ インターフェイスと SSL サポートのために libcurl を使用します)。マスター スレッドはワーカーにジョブを渡す必要があり、メッセージの受け渡しに apache apr メッセージ キューを使用することを考えました。同じスレッドで、着信メッセージとカールハンドルの可用性を確認する必要があるため、次のようなものを使用すると思います。
while (1)
{
while (apr_queue_try_pop(queue, &msg) == APR_SUCCESS)
{
// do something with the message
}
// perform a select or poll in the curl multi handle
// treat the handles that are available for reads/writes
}
スレッド開始関数で。
これは一種の忙しい待機です。より良い解決策はありますか?
C99 と Linux x86_64 を使用。