Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
Delphi 10.4 Sydney
|
AW: Lock/Unlock-Mechanismus ohne Bezug auf Multithreading?
29. Jul 2019, 08:34
Bist du sicher, daß der Code auch diese Forderung abdeckt?
Und dass er mir bitte "Nein" sagt wenn ich im gleichen Thread schon einmal gelocked habe.
Nur wenn man an alle Fälle denkt und die ausprogrammiert und das nicht übermüdet zwischen zwei Arbeitsaufgaben hin skizziert!
Delphi-Quellcode:
function TLock.Lock(const AInstance: TInstance; ATimeout: Cardinal = 0): Boolean;
begin
Result := False;
if AInstance <> nil then
begin
if FInstance = nil then
begin
FInstance := AInstance;
Result := TMonitor.Enter(FInstance, ATimeout);
end
else if FInstance <> AInstance then
begin
raise ELockException.Create('This is a different instance!');
end
else
Result := True;
end;
end;
|