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

9.5 Взаимодействие задач

Основным средством взаимодействия задач являются вызовы процедур и защищенных подпрограмм. Вызовы защищенных подпрограмм позволяют координировать доступ к общим данным. Вызовы процедур позволяют заблокировать вызывающую задачу до тех пор, пока не будет выполнено заданное условие (а именно, соответствующая процедура открыта — см. 9.5.3), а затем передать данные или управляющую информацию напрямую другой задаче или косвенно через общий защищенный объект.

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

Любой вызов процедуры или защищенной подпрограммы определяет целевой объект для операции, который является либо задачей (для вызова процедуры), либо защищенным объектом (для вызова процедуры или защищенной подпрограммы). Целевой объект рассматривается как неявный параметр операции и определяется именем имени (или префиксом префикса), используемым в вызове операции, следующим образом:
  • Если это прямое_имя или расширенное имя, обозначающее объявление (или тело) операции, то целевой объект неявно задаётся текущей инстанцией задачи или защищённого блока, непосредственно содержащего операцию; такой вызов определяется как внутренний вызов;
  • Если это выбранный_компонент, который не является расширенным именем, то целевой объект явно задаётся задачей или защищенным объектом, обозначаемым префиксом префикса имени имени; такой вызов определяется как внешний вызов;
  • Если имя имени или префикс префикса является косвенной (явной или неявной) ссылкой на значение типа доступ к защищенной подпрограмме, то целевой объект определяется префиксом префикса ссылки на атрибут доступа атрибут_ссылки, который изначально сгенерировал значение доступа, и вызов определяется как внешний вызов;
  • Если имя имени или префикс префикса обозначает объявление переименования подпрограммы subprogram_renaming_declaration, то целевой объект определяется именем переименованного объекта.
Соответствующее определение целевого объекта применяется к оператору переупорядочения (см. 9.5.4), с соответствующим разграничением между внутренним переупорядочением и внешним переупорядочением.

Правила допустимости

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

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

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


Spec-Zone.ru

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