variable peut qui est déclaré dans le même corps de procédure où sont être considérées comme des tâches partagées pour ces tâches?
-
22-09-2019 - |
Question
variable est utilisée dans une seule tâche, mais la question est: peut-il être partagé APPELÉ?
La solution
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 global pour les deux tâches, mais pas partagé dans le sens Ada d'être correctement protégé pour un accès constant, en même temps.
Même si la variable globale est en fait référencé par une seule des tâches, et donc il n'y a aucune chance de problème initié accès concurrentiel se produisant lors de l'accès, il ne fait toujours pas la variable partagé .
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow