Остановить программу
От: Аноним  
Дата: 04.02.08 16:14
Оценка:
Нужно написать очередь для сообщений. Возник вопрос — как лучше реализовать функцию чтения сообщения? Если сообщений в очереди нет, она должна блокировать выполнение до поступления сообщения. Сообщения — наследники некоторого класса Message. Посылают сообщения другие потоки приложения. Ос — Linux. Пока видятся решения на базе захвата мьютекса или select(). Есть средство лучше?

Пожалуйста, готового не предлагать!
Re: Остановить программу
От: Uzumaki Naruto Ниоткуда  
Дата: 04.02.08 16:19
Оценка:
> Пока видятся решения на базе захвата мьютекса или select(). Есть средство лучше?

Ну раз видится — действуй

Re: Остановить программу
От: remark Россия http://www.1024cores.net/
Дата: 04.02.08 17:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Нужно написать очередь для сообщений. Возник вопрос — как лучше реализовать функцию чтения сообщения? Если сообщений в очереди нет, она должна блокировать выполнение до поступления сообщения. Сообщения — наследники некоторого класса Message. Посылают сообщения другие потоки приложения. Ос — Linux. Пока видятся решения на базе захвата мьютекса или select(). Есть средство лучше?


А>Пожалуйста, готового не предлагать!


Осмелюсь предложить просто посмотреть на готовое, коего превеликое множество.


1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[2]: Остановить программу
От: Аноним  
Дата: 04.02.08 18:25
Оценка:
Здравствуйте, remark, Вы писали:

R>Здравствуйте, Аноним, Вы писали:


А>>Нужно написать очередь для сообщений. Возник вопрос — как лучше реализовать функцию чтения сообщения? Если сообщений в очереди нет, она должна блокировать выполнение до поступления сообщения. Сообщения — наследники некоторого класса Message. Посылают сообщения другие потоки приложения. Ос — Linux. Пока видятся решения на базе захвата мьютекса или select(). Есть средство лучше?


А>>Пожалуйста, готового не предлагать!


R>Осмелюсь предложить просто посмотреть на готовое, коего превеликое множество.


R>

Благодарю) Не откажусь от названия, но все-равно хочется узнать механизм, который блокирует в таких случаях поток. Остальное — не очень важно.
Re[3]: Остановить программу
От: remark Россия http://www.1024cores.net/
Дата: 04.02.08 18:27
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, remark, Вы писали:


R>>Здравствуйте, Аноним, Вы писали:


А>>>Нужно написать очередь для сообщений. Возник вопрос — как лучше реализовать функцию чтения сообщения? Если сообщений в очереди нет, она должна блокировать выполнение до поступления сообщения. Сообщения — наследники некоторого класса Message. Посылают сообщения другие потоки приложения. Ос — Linux. Пока видятся решения на базе захвата мьютекса или select(). Есть средство лучше?


А>>>Пожалуйста, готового не предлагать!


R>>Осмелюсь предложить просто посмотреть на готовое, коего превеликое множество.


А>Благодарю) Не откажусь от названия, но все-равно хочется узнать механизм, который блокирует в таких случаях поток. Остальное — не очень важно.


Semaphore или Condition variable.


1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[4]: Остановить программу
От: Аноним  
Дата: 04.02.08 18:44
Оценка:
То, что нужно! Спасибо.

Удачи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.