ГОСТ Р ИСО/МЭК 24709-1— 2009
8.9.2.14 Если прерывание не происходит, то после обработки последнего элемента каждый выходной
параметр должен быть подвергнут одному из следующих действий:
a) переменной, к которой обращаются в элементе <output>. должно быть присвоено конечное значе
ние выходного параметра, если вызов процесса содержит элемент <output> для соответствующего вы
ходного параметра в соответствии с 8.6.2.3;
b
) в противном случае конечное значение выходного параметра должно быть удалено.
8.9.2.15 После этого контекст выполнения данного вызова процессадолжен быть удален.
8.9.2.16 Если процесс был вызван другим процессом, то выполнение вызывающего процесса должно
быть продолжено. Если процесс является исходным процессом утверждения, то обработка всего утверж
дения завершается.
8.9.2.17 Прерывание выполнения процесса происходит в следующих случаях:
a) если процесс содержит элемент <assert_condition> с атрибутом break_if_false. имеющим значе
ние "true", а результат оценки условия в элементе <assert_condition> имеет значение "false" и
b
)если процесс содержит элемент <invoke> сатрибутом break_on_break, имеющим значение "true",
когда вызываемый процесс завершается из-за прерывания, прерывание происходит и в вызывающем про
цессе (см. 8.9.2.18).
8.9.2.18 Если в процессе происходит прерывание (по одной из причин, указанных в 8.9.2.17. перечис
ления а). Ь)) то абстрактная испытательная машинадолжна:
a) пропустить обработку оставшихся элементов процесса;
b
) пропустить присвоение значений выходных параметров переменным, к которым обращаются в
соответствующих элементах <output> при вызове процесса (в случае их наличия);
c) выполнить удаление контекста выполнения вызова текущего процесса и затем возобновить выпол
нение вызывающего процесса (в случае его наличия).
П р и м е ч а н и я
1 В 8.9.2.18. перечисление Ь) подразумевается, что если переменная, соответствующая выходному пара
метру. не существовала до вызова, то при возобновлении вызывающего процесса она не создается.
2 Если положение 8.9.2.17. перечисление Ь) относится к вызывающему процессу, то выполнение вызываю
щего процесса будет прекращено сразу же после его возобновления
8.9.2.19 Процессы могут создавать новые глобальные переменные или изменять значения ужесуще
ствующих.
8.9.2.20 Процесс не может быть прерван другим процессом с тем же или более низким приоритетом
(см. 8.Э.2.9).
8.9.2.21 Процесс может быть прерван другим процессом, имеющим более высокий приоритет. Преры
вание процесса может произойти в любое время: до, после или во время обработки элемента процесса, со
следующими исключениями.
a) не может произойти прерывание обработки элементов <set>. <add>. <subtract> или <assert_con-
dition>;
b) в процессе обработки элемента <invoke> функции стандартного интерфейса ВюАР! прерывание не
может произойти во время оценки условий (в случае их наличия), во время присвоения значения входным
параметрам и во время передачи выходных параметров и возвращаемого значения.
П р и м е ч а н и е — Прерывания могут происходить в процессе выполнения функции:
c) в процессе обработки элемента <wait_until> прерывание не может произойти в момент оценки
условия.
П р и м е ч а н и е — Прерывания могут происходить в промежутке между двумя следующими друг за другом
оценками условия;
d) процесс с атрибутом atomic, имеющим значение "true", прерывать не допускается (с момента
создания входных параметров и до момента удаления выходных параметров).
8.9.2.22 Имена процессов должны состоять изстрок символов, указанных в ИСО/МЭК 10646, которые
подходятдля создания имени «NCName» (неквалифицированного имени) в пространствах имен W3C XML.
8.9.2.23 Имена процессов в пакете должны быть уникальными.
25