У меня есть процесс, который использует разные потоки для выполнения разных типов заданий.
Один такой поток должен отправлять push-уведомления неблокирующим образом (поэтому я буду использовать libcurl из-за мультиинтерфейса и поддержки SSL). Главный поток должен передать задание рабочему, и я подумал об использовании очереди сообщений apache apr для передачи сообщений. Поскольку в этом же потоке я должен проверять входящие сообщения и наличие дескрипторов curl, я думаю, что я буду использовать что-то вроде этого:
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.