Нужно написать очередь для сообщений. Возник вопрос — как лучше реализовать функцию чтения сообщения? Если сообщений в очереди нет, она должна блокировать выполнение до поступления сообщения. Сообщения — наследники некоторого класса Message. Посылают сообщения другие потоки приложения. Ос — Linux. Пока видятся решения на базе захвата мьютекса или select(). Есть средство лучше?
Пожалуйста, готового не предлагать!
Здравствуйте, Аноним, Вы писали:
А>Нужно написать очередь для сообщений. Возник вопрос — как лучше реализовать функцию чтения сообщения? Если сообщений в очереди нет, она должна блокировать выполнение до поступления сообщения. Сообщения — наследники некоторого класса Message. Посылают сообщения другие потоки приложения. Ос — Linux. Пока видятся решения на базе захвата мьютекса или select(). Есть средство лучше?
А>Пожалуйста, готового не предлагать!
Осмелюсь предложить просто посмотреть на готовое, коего превеликое множество.
Здравствуйте, remark, Вы писали:
R>Здравствуйте, Аноним, Вы писали:
А>>Нужно написать очередь для сообщений. Возник вопрос — как лучше реализовать функцию чтения сообщения? Если сообщений в очереди нет, она должна блокировать выполнение до поступления сообщения. Сообщения — наследники некоторого класса Message. Посылают сообщения другие потоки приложения. Ос — Linux. Пока видятся решения на базе захвата мьютекса или select(). Есть средство лучше?
А>>Пожалуйста, готового не предлагать!
R>Осмелюсь предложить просто посмотреть на готовое, коего превеликое множество.
R>
Благодарю) Не откажусь от названия, но все-равно хочется узнать механизм, который блокирует в таких случаях поток. Остальное — не очень важно.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, remark, Вы писали:
R>>Здравствуйте, Аноним, Вы писали:
А>>>Нужно написать очередь для сообщений. Возник вопрос — как лучше реализовать функцию чтения сообщения? Если сообщений в очереди нет, она должна блокировать выполнение до поступления сообщения. Сообщения — наследники некоторого класса Message. Посылают сообщения другие потоки приложения. Ос — Linux. Пока видятся решения на базе захвата мьютекса или select(). Есть средство лучше?
А>>>Пожалуйста, готового не предлагать!
R>>Осмелюсь предложить просто посмотреть на готовое, коего превеликое множество.
А>Благодарю) Не откажусь от названия, но все-равно хочется узнать механизм, который блокирует в таких случаях поток. Остальное — не очень важно.
Semaphore или Condition variable.
То, что нужно! Спасибо.
Удачи!