Руководство по Ada (Ada 2022)
D.4.1 Политики приема
Этот подпункт определяет механизм выбора пользователем политики приема. Он также определяет одну такую политику. Другие политики определяются реализацией.
Синтаксис
Форма директивы Admission_Policy следующая:
pragma Admission_Policy (policy_идентификатор);
Правила легальности
policy_идентификатор должен быть либо FIFO_Spinning, либо определённым реализацией идентификатором.
Правила после компиляции
Директива Admission_Policy — это конфигурационная директива.
Динамическая семантика
Политика приема управляет порядком обработки конкурирующих задач для получения ресурса выполнения, связанного с защищённым объектом. Политика приема задаётся директивой Admission_Policy.
Одна политика приема, FIFO_Spinning, определена языком. Если FIFO_Spinning активна, и запуск защищённого действия над защищённым объектом подразумевает ожидание, то вызовы выбираются для получения ресурса выполнения защищённого объекта в порядке их инициации ожидания; в противном случае политика FIFO_Spinning не оказывает влияния. Если ни одна директива Admission_Policy не применяется к каким-либо модулям программы в разделе, то политика приема для этого раздела определяется реализацией.
Разрешения реализации
Реализации разрешается определять другие политики приема, но не требуется поддержка задания более чем одной политики приема на один раздел.