Spec-Zone.ru › Ada 2005
Справочник по Ada 2005

D.5.2 Динамические приоритеты для защищённых объектов

Данный пункт описывает, как приоритет защищённого объекта можно изменять или запросить во время выполнения.

Статическая семантика

Для префикса P, обозначающего защищённый объект, определён следующий атрибут:
P'Priority
Обозначает неалиасированный компонент защищённого объекта P. Этот компонент имеет тип System.Any_Priority и его значение — приоритет P. P'Priority обозначает переменную тогда и только тогда, когда P обозначает переменную. Ссылка на этот атрибут должна появляться только внутри тела P.
Начальное значение этого атрибута — начальное значение приоритета защищённого объекта и может быть изменено присваиванием.

Динамическая семантика

Если политика блокировки Ceiling_Locking (см. D.3) действует, то потолочный приоритет защищённого объекта P устанавливается в значение P'Priority в конце каждого защищённого действия P.
Если политика блокировки Ceiling_Locking действует, то для защищённого объекта P с применением псевдонима Attach_Handler или Interrupt_Handler к одному из его процедур, выполняется проверка, что присваиваемое значение P'Priority находится в диапазоне System.Interrupt_Priority. Если проверка не пройдена, генерируется Program_Error.

Метрики

Реализация должна документировать следующую метрику:
  • Разницу во времени выполнения вызовов следующих процедур в защищённом объекте P:
protected P is
procedure Do_Not_Set_Ceiling (Pr : System.Any_Priority);
procedure Set_Ceiling (Pr : System.Any_Priority);
end P;
protected body P is
procedure Do_Not_Set_Ceiling (Pr : System.Any_Priority) is
begin
null;
end;
procedure Set_Ceiling (Pr : System.Any_Priority) is
begin
P'Priority := Pr;
end;
end P;
ПРИМЕЧАНИЯ
31 Поскольку P'Priority — обычная переменная, значение после присваивания атрибуту сразу отражает новое значение, даже если его влияние на потолочный приоритет P откладывается до завершения защищённого действия, в котором оно выполняется.





Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API