![]() |
|
Модераторы: xvr |
![]()
|
|
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
Господа, а никто случайно не видел чего нибудь небольшого для реализации связки CreateEvent/xxxEvent/WaitForMultipleObjects на Linux? В Wine этот кусок прихватит с собой добрую половину Wain'а, а надо что то маленькое
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 1 Всего: 211 |
xvr
А boost-овские варианты не устраивают? |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
Не нашел там возможности ждать на нескольких event'ах сразу |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 1 Всего: 211 |
а если обойтись? допустим нужно 3 события, статус которых можно проверить и запустить цикл
все три события посылают сигнал одному и тому же объекту cond, тогда цикл просыпается, проверяет выполнение всех трех условий (наступление всех 3х событий) и если они пока не наступили снова благополучно засыпает. |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
Ну собственно что то такое и придется делать, если не найдется готового. Хочется не изобретать велосипед, даже если он и маленький
Добавлено через 4 минуты и 39 секунд Собственно задача такая: есть класс Event (с manual или automatic сбросом - задается в конструкторе), и есть функция, которая может ждать на любом из набора Event'ов (задаются массивом указателей на экземпляры Event'ов). Еще можно задать timeout. На Win32 API это ложится 1:1, на Linux напрямую не ложится А так как кроме этого в системе еще есть куча, чего надо писать, то заниматься написанием эмулятора кусочка Win32 API не хочется |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
xvr,
предлагаю засунуть в Event объект eventfd (man 2 eventfd) это обычный дескриптор соответственно потом их засовываем в epoll (или более высокоуровневое типа libevent) и ждем можно даже select или poll зы. эта хрень появилась в 2.6.22 (в ядрах до можно юзать обычные пайпы) -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
За eventfd спасибо, то что нужно. Увы ядро у меня кажется постарше :( Про обычные пайпы я думал, но смущает большое количество хэндлов, которое понадобится |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
В результате написал велосипед (на 150 строк). Как доберусь до машины буду отлаживать
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |