Вы не можете использовать параметры записи в своей собственной защите.Я так понял, что вы получили
Как работают охранники, все они оцениваются до того, как начинается ожидание , и только те , которые активны в это время будет доступно.Они не получают периодическую переоценку или динамическое чтение или что-то в этом роде.
Это означает, что будет трудно правильно настроить логику для ваших охранников, если вы не напишите свой код, чтобы только другие записи вваш защищенный объект изменяет охрану .Если вы хотите использовать некоторые данные извне защищенного объекта для управления его поведением, вам, вероятно, потребуется использовать какой-то механизм, отличный от охранников, для этого.Например, проверка прямо внутри входа и немедленный выход или что-то в этом роде.
Существует одна возможность того, что вы пытаетесь сделать: Ввод семейства .Вы должны быть в состоянии использовать индекс входной семьи в охране.
Спецификация изменится на:
entry track_req(track_part_type);
entry track_rel(track_part_type);
И тело изменится на
entry track_req(for n in track_part_type) when track_available(n) is
begin
req(n);
end track_req;
entry track_rel(for n in track_part_type) when track_available(n) is
begin
rel(n);
end track_rel;
end track_handler;