Руководство по Ada (Ada 2022)
H.5 Директива Detect_Blocking
Следующая директива требует от реализации обнаружения потенциально блокирующих операций во время выполнения защищённой операции или параллельного построения.
Синтаксис
Форма директивы Detect_Blocking:
pragma Detect_Blocking;
Правила после компиляции
Директива Detect_Blocking — это директива конфигурации.
Динамическая семантика
Реализация должна обнаружить потенциально блокирующую операцию, которая происходит во время выполнения защищённой операции или параллельного построения, определённого в единице компиляции, к которой относится директива, и должна вызвать исключение Program_Error (см. 9.5).
Разрешения реализации
Реализация может отклонить единицу компиляции, к которой применяется директива Detect_Blocking, если потенциально блокирующая операция присутствует непосредственно внутри тела входа, тела защищённой подпрограммы или параллельного построения, происходящего в пределах единицы компиляции.
ПРИМЕЧАНИЕ Операция, которая приводит к блокировке задачи в области другого языка, не определяется как потенциально блокирующая и, скорее всего, не будет обнаружена.