реклама на сайте
подробности

 
 
> Мультиплексирование сигналов, OS::TEventFlag
Vasya777
сообщение Jan 12 2013, 17:54
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 22-01-12
Пользователь №: 69 790



Здравствуйте!

Насколько понимаю для оповещения процессов о событии используется OS::TEventFlag. А как заставить процесс ожидать событие от какого-либо одного из нескольких источников.

Допустим есть несколько прерываний, которые обрабатывает один процесс. Не делать ведь несколько одинаковых процессов или несколько процессов, ждущих прерывания и посылающих сигнал обрабатывающему процессу. Есть ли какой-нибудь способ решения этой задачи?

Заранее большое спасибо за ответ!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dxp
сообщение Jan 14 2013, 03:58
Сообщение #2


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (Vasya777 @ Jan 13 2013, 00:54) *
Насколько понимаю для оповещения процессов о событии используется OS::TEventFlag. А как заставить процесс ожидать событие от какого-либо одного из нескольких источников.

Допустим есть несколько прерываний, которые обрабатывает один процесс. Не делать ведь несколько одинаковых процессов или несколько процессов, ждущих прерывания и посылающих сигнал обрабатывающему процессу. Есть ли какой-нибудь способ решения этой задачи?

Один и тот же флаг события может сигналить множество источников. Поэтому, если не требуется определять источник, то просто ждёте флага в ожидающем процессе, и сигналите его их каких угодно мест. Если нужно определять источник, то, как уже сказали выше, OS::message.

QUOTE (Vasya777 @ Jan 13 2013, 13:37) *
А почему в message не сделали

CODE

bool wait (T& msg, timeout_t timeout = 0);
INLINE void send(T& msg);
INLINE void send_isr(T& msg);

Это вопрос или что? Если вопрос, то он не понятен.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 15:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01333 секунд с 7
ELECTRONIX ©2004-2016