34 lines
578 B
Ada
34 lines
578 B
Ada
-- { dg-do run }
|
|
|
|
procedure Atomic8 is
|
|
|
|
V : array (1 .. 2) of Natural := (0,0) with Atomic_Components;
|
|
|
|
task type TT1;
|
|
task body TT1 is
|
|
begin
|
|
while V (1) + V (2) < 1_000_000 loop
|
|
V (1) := V (1) + 1;
|
|
end loop;
|
|
end TT1;
|
|
|
|
task type TT2;
|
|
task body TT2 is
|
|
begin
|
|
while V (1) + V (2) < 1_000_000 loop
|
|
V (2) := V (2) + 1;
|
|
end loop;
|
|
end TT2;
|
|
|
|
begin
|
|
declare
|
|
T1 : TT1;
|
|
T2 : TT2;
|
|
begin
|
|
null;
|
|
end;
|
|
if V (1) + V (2) not in 1_000_000 | 1_000_001 then
|
|
raise Program_Error;
|
|
end if;
|
|
end;
|