Synchronisation par exclusion mutuelle (mutex)

Contenu du snippet

// pour créer un mutex, déclarez une variable de type Boolean (initialisée à False)
// routine pour prendre la main dès que possible
procedure RequestMutex(var Mutex: Boolean);
begin
 repeat until not Mutex;
 Mutex := True;
end;
// routine pour laisser la main
procedure ReleaseMutex(var Mutex: Boolean);
begin
 Mutex := False;
end;
// utilisation
begin
 RequestMutex(MutexDonnee);
 // modifier la donnée, on est tranquilles ici
 ReleaseMutex(MutexDonnee);
end;
// Avertissement : si ReleaseMutex n'est pas appellée à chaque fois, la donnée sera verrouillée, soyez donc certains de votre coup sinon ça reste coincé !


Compatibilité : Delphi 5

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.