ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
93829 Топик полностью
=AlexD= (09.07.2007 12:37, просмотров: 1) ответил Sergey Pinigin на опубликуешь свой лад, в виде идей или исходников?
Лады, как(если) доберусь до дела. Хотя кое-чего могу сказать 1 Sleep() можно вызвать только из процесса, из вложенной ф-ии только через гимор OS::TBaseProcess::Sleep() Простой вынос описания этой ф-ии из TBaseProcess в пространство имён OS без(!) изменения её содержимого ликвидирует проблему накорню. (уже сделал) 2. Ф-ии void WakeUpProcess (TBaseProcess& p); void ForceWakeUpProcess (TBaseProcess& p); bool IsProcessSleeping (const TBaseProcess& p); bool IsProcessSuspended (const TBaseProcess& p); Наоборот сделаны в пространстве имён OS... зачем? хотелось бы вызывать их так procLedBlink.WakeUpProcess() Изменений то - всего ничего. 3. Хочу таймауты для ВСЕХ системных вызовов (добавил для мутексов) 4. Хочу "особые" таймауты #define NONBLOCK -1U // неблокирующий вызов #define BLOCK 0U // блокирующий вызов (добавил) PS логичнее былобы константы поменять местами - но тогда потеряется совместимость. 5. Нужен системный вызов с комбинированой функциональностью мутекса и флага с единым таймаутом. Для разного рода очередей. 6. Идущая в комплекте очередь не предназначена для работы с ISR. :-(( (и к томуже не эффективна для байтовых объектов) Это самая серьёзная претензия, пришлось городить свои реализации очередей. ...Было что-то ещё... уже забыл. Я с автором списывался, но мои идеи не были восприняты с восторгом. Автор пообещал некое АПИ для конструирования системных вызовов, и на этом всё. А я переключился на параллельную задачу и мне не до того.