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

C.7.1 Пакет Task_Identification

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

Существует следующий пакет библиотеки, определенный языком:
package Ada.Task_Identification is
type Task_ID is private;
Null_Task_ID : constant Task_ID;
function "=" (Left, Right : Task_ID) return Boolean;
function Image (T : Task_ID) return String;
function Current_Task return Task_ID;
procedure Abort_Task (T : in Task_ID);
function Is_Terminated(T : Task_ID) return Boolean;
function Is_Callable (T : Task_ID) return Boolean;
private
... -- не указано языком
end Ada.Task_Identification;

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

Значение типа Task_ID идентифицирует существующую задачу. Константа Null_Task_ID не идентифицирует ни одну задачу. Каждый объект типа Task_ID инициализируется по умолчанию значением Null_Task_ID.
Функция "=" возвращает True тогда и только тогда, когда Left и Right идентифицируют одну и ту же задачу или оба имеют значение Null_Task_ID.
Функция Image возвращает строку, определяемую реализацией, которая идентифицирует T. Если T равно Null_Task_ID, Image возвращает пустую строку.
Функция Current_Task возвращает значение, которое идентифицирует вызывающую задачу.
Эффект Abort_Task такой же, как и для оператора abort_statement для задачи, идентифицируемой T. Кроме того, если T идентифицирует задачу среды выполнения, вся секция прерывается. См. E.1.
Функции Is_Terminated и Is_Callable возвращают значение соответствующего атрибута задачи, идентифицированной T.
Для префикса T, являющегося типом задачи (после любого неявного разыменования), определен следующий атрибут:
T'Identity
Возвращает значение типа Task_ID, которое идентифицирует задачу, обозначаемую T.
Для префикса E, обозначающего entry_declaration, определен следующий атрибут:
E'Caller
Возвращает значение типа Task_ID, которое идентифицирует задачу, вызов которой в настоящее время обслуживается. Использование этого атрибута разрешено только внутри entry_body или accept_statement, соответствующих entry_declaration, обозначаемому E.
Program_Error возникает, если значение Null_Task_ID передаётся в качестве параметра функциям Abort_Task, Is_Terminated и Is_Callable.
Abort_Task — потенциально блокирующая операция (см. 9.5.1).

Ограниченные (временные) ошибки

Вызов функции Current_Task из тела входа или обработчика прерываний является ограниченной ошибкой. Возникает Program_Error или возвращается значение типа Task_ID, определяемое реализацией.

Ошибка выполнения

Если значение Task_ID передаётся в качестве параметра любой операции, объявленной в этом пакете (или любом языке-определенном дочернем пакете), и соответствующий объект задачи больше не существует, выполнение программы является ошибочным.

Требования к документации

Реализация должна документировать эффект вызова Current_Task из тела входа или обработчика прерываний.
ПРИМЕЧАНИЯ
10 Этот пакет предназначен для использования при написании пакетов планирования задач и построения серверных задач. Current_Task может использоваться совместно с другими операциями, требующими задачу в качестве аргумента, такими как Set_Priority (см. D.5).
11 Функция Current_Task и атрибут Caller могут возвращать значение Task_ID, идентифицирующее задачу среды выполнения.


Spec-Zone.ru

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