La variable est utilisée dans une seule tâche, mais la question est la suivante: peut-elle être partagée?Une variable peut-elle être déclarée dans le même corps de procédure où les tâches sont considérées comme partagées pour ces tâches?
0
A
Répondre
1
Je suppose que vous parlez d'une structure de code quelque chose comme ceci:
procedure A_Procedure_Body is
task T1 is
entry T1_E1;
end T1;
task T2 is
entry T2_E1;
end T2;
Some_Variable : Integer;
task body T1 is
T1_Local : Integer;
begin
T1_Local := Some_Variable;
...
end T1;
task body T2 is
T2_Local : Integer := 42;
begin
Some_Variable := T2_Local;
...
end T2;
begin
null;
end A_Procedure_Body;
Dans ce cas, « une_variable » est mondiale à la fois des tâches, mais pas partagé au sens Ada d'être correctement protégé pour un accès cohérent et simultané.
Même si la variable globale est réellement référencée par une seule des tâches et qu'il n'y a donc aucun risque d'apparition de problèmes d'accès simultané lors de l'accès, la variable ne partage toujours pas la variable.