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

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

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

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

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

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

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


Spec-Zone.ru

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