![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Deeoni$ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 24.2.2003 Репутация: нет Всего: нет |
Здравствуйте.
Есть библиотека объекты классов которой общаются между собой через boost::signal2 сигналы. Библиотека многопоточная, т.е. разные ее модули работают в разных потоках, но все сигналы от них должны обрабатываться в одном специальном потоке. Для этого я использовал boost::asio::io_service, который принимает сигналы от модулей и обрабатывает их в этом специальном потоке. Код выглядит примерно так.
Но в какой-то момент появилась необходимость присвоить сигналам некую степень важности. Если конкретнее, то сигналы могут приходить в очередь как от самой библиотеки, так и от клиентского кода, через интерфейсный класс. Так вот клиентские сигналы имеют более высокую степень важности, чем сигналы библиотеки. На практике это значит, что клиентский сигнал попадая в очередь должен: 1) Удалять из очереди все не обработанные сигналы от библиотеки 2) Блокировать очередь для поступления новых Так вот вопрос есть ли какой-нибудь способ управлять очередью io_service, а точнее удалять из нее не нужные мне объекты? Или надо писать свой класс для этого? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |