Sujet : Re: Question sur les tasks
De : 314 (at) *nospam* drpi.fr (DrPi)
Groupes : fr.comp.lang.adaDate : 19. Oct 2023, 17:59:06
Autres entêtes
Organisation : <http://pasdenom.info/news.html>
Message-ID : <ugrn90$vv4$1@rasp.pasdenom.info>
References : 1 2 3 4 5
User-Agent : Mozilla Thunderbird
Bonjour Stéphane,
Le 19/10/2023 à 15:41, Stéphane Rivière a écrit :
Dans la fonction privée qui factorise tous les Msg.Std/Dbg/Err :
procedure Put (Line_In : String;
Line_Level : String;
Title_On : Boolean := False) is
Line : String := Line_In;
Line_Disk : String := Line;
Line_Task : String := "";
Ansi_Begin : String := "";
Ansi_End : String := "";
M : Mutex;
begin
M.Lock;
.../...
M.Release;
end Put;
!!! Implémenté comme ça, le mutex ne protège rien !!!
Lorsque le mutex est déclaré dans la fonction, un nouveau mutex est créé à chaque appel de la fonction. Il ne sert donc à rien.
Il faut que le mutex soit déclaré au niveau global. Au début du "package body Msg" par exemple.
Nicolas