Книга: Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform
Так в чем тут хитрость?
Так в чем тут хитрость?
Никакой хитрости нет, QNX/Neutrino делает все для вас автоматически.
Однако, и здесь есть еще одна тонкость. Как обеспечить возврат приоритета на тот уровень, который был до изменения?
Ваш сервер работает, обслуживает запросы клиентуры и автоматически регулирует свой приоритет каждый раз, когда ему приходится разблокироваться из функции MsgReceive(). Но когда он должен восстанавливать прежнее значение приоритета, которое было до вызова MsgReceive()?
Рассмотрим два варианта развития событий.
• После обслуживания клиента сервер выполняет еще какие-то дополнительные действия. Это он должен сделать на своем приоритете, а не на приоритете клиента.
• После обслуживания клиента сервер немедленно вызывает MsgReceive() снова для обработки следующего запроса.
В первом случае для сервера было бы некорректно работать на приоритете клиента, поскольку он больше не делает для этого клиента никакой работы. Решение здесь очень простое. Используйте функцию pthread_setschedparam() (мы ее обсуждали в главе «Процессы и потоки») для возврата приоритету нужного значения.
Что касательно второго случая, то ответ достаточно прост. Кому какое дело?
Подумайте об этом. Какая разница, станет сервер RECEIVE-блокированным на приоритете 29 или на приоритете 2?
Главное — что он RECEIVE-блокирован! А коль скоро в этом состоянии он не расходует процессорное время, его приоритет является несущественным. Как только функция MsgReceive() разблокирует сервер, сервером будет унаследован приоритет нового клиента, и все будет работать как полагается.
- Что происходит, когда бренды растут или идут на спад
- Проблема с переключением языков. Значок есть, но не работает. Если через Панель управления удалить все языки и тут же сн...
- Как растут бренды. О чем не знают маркетологи
- Глава IV. И ТУТ БЕЗ КОМПЬЮТЕРА НЕ ОБОШЛОСЬ
- Глава 2 Как растут бренды
- При чем тут Сбербанк?
- Правило № 11 Деньги растут на деревьях
- «Тутси»
- Как тайфуны растут и набирают силу?
- При чем тут Библия?
- А все-таки при чем тут Библия?
- Кто тут самый честный?