Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужна реализация Event'ов на Linux 
:(
    Опции темы
xvr
Дата 14.10.2010, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 20
Всего: 223



Господа, а никто случайно не видел чего нибудь небольшого для реализации связки CreateEvent/xxxEvent/WaitForMultipleObjects на Linux? В Wine этот кусок прихватит с собой добрую половину Wain'а, а надо что то маленькое smile Не хочется изобретать велосипед

PM MAIL   Вверх
azesmcar
Дата 14.10.2010, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 1
Всего: 211



xvr

А boost-овские варианты не устраивают?
PM   Вверх
xvr
Дата 14.10.2010, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 20
Всего: 223



Цитата(azesmcar @ 14.10.2010,  09:47)
xvr

А boost-овские варианты не устраивают?

Не нашел там возможности ждать на нескольких event'ах сразу

PM MAIL   Вверх
azesmcar
Дата 14.10.2010, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 1
Всего: 211



Цитата(xvr @  14.10.2010,  10:42 Найти цитируемый пост)
Не нашел там возможности ждать на нескольких event'ах сразу

а если обойтись?
допустим нужно 3 события, статус которых можно проверить и запустить цикл
Код

while (condition1 && condition2 && condition3)
{
    cond.wait(lock);
}

все три события посылают сигнал одному и тому же объекту cond, тогда цикл просыпается, проверяет выполнение всех трех условий (наступление всех 3х событий) и если они пока не наступили снова благополучно засыпает.

PM   Вверх
xvr
Дата 14.10.2010, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 20
Всего: 223



Ну собственно что то такое и придется делать, если не найдется готового. Хочется не изобретать велосипед, даже если он и маленький  smile

Добавлено через 4 минуты и 39 секунд
Собственно задача такая: есть класс Event (с manual или automatic сбросом - задается в конструкторе), и есть функция, которая может ждать на любом из набора Event'ов (задаются массивом указателей на экземпляры Event'ов). Еще можно задать timeout.
На Win32 API это ложится 1:1, на Linux напрямую не ложится  smile 
А так как кроме этого в системе еще есть куча, чего надо писать, то заниматься написанием эмулятора кусочка Win32 API не хочется  smile 
PM MAIL   Вверх
MAKCim
Дата 14.10.2010, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



xvr, 
предлагаю засунуть в Event объект eventfd (man 2 eventfd)
это обычный дескриптор
соответственно потом их засовываем в epoll (или более высокоуровневое типа libevent) и ждем
можно даже select или poll

зы. эта хрень появилась в 2.6.22 (в ядрах до можно юзать обычные пайпы)


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
xvr
Дата 14.10.2010, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 20
Всего: 223



Цитата(MAKCim @  14.10.2010,  14:53 Найти цитируемый пост)
предлагаю засунуть в Event объект eventfd (man 2 eventfd)

За eventfd спасибо, то что нужно. Увы
Цитата(MAKCim @  14.10.2010,  14:53 Найти цитируемый пост)
зы. эта хрень появилась в 2.6.22 
ядро у меня кажется постарше :( Про обычные пайпы я думал, но смущает большое количество хэндлов, которое понадобится


PM MAIL   Вверх
xvr
Дата 15.10.2010, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 20
Всего: 223



В результате написал велосипед (на 150 строк). Как доберусь до машины буду отлаживать  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0562 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.