Имам процес, който използва различни нишки за създаване на различни видове задачи.
Една такава нишка трябва да изпраща насочени известия по неблокиращ начин (така че ще използвам libcurl поради мулти интерфейса и поддръжката на SSL). Главната нишка трябва да предаде заданието на работника и си помислих да използвам опашка за съобщения на 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.