mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-14 18:22:54 +02:00
LazLogger: Init is called from DoDebugLn => make thread save
git-svn-id: trunk@60264 -
This commit is contained in:
parent
4ee1459b01
commit
131d04802a
@ -96,6 +96,7 @@ type
|
|||||||
|
|
||||||
TLazLogger = class(TRefCountedObject)
|
TLazLogger = class(TRefCountedObject)
|
||||||
private
|
private
|
||||||
|
FLoggerCriticalSection: TRTLCriticalSection;
|
||||||
FIsInitialized: Boolean;
|
FIsInitialized: Boolean;
|
||||||
|
|
||||||
FMaxNestPrefixLen: Integer;
|
FMaxNestPrefixLen: Integer;
|
||||||
@ -775,6 +776,7 @@ end;
|
|||||||
|
|
||||||
constructor TLazLogger.Create;
|
constructor TLazLogger.Create;
|
||||||
begin
|
begin
|
||||||
|
InitCriticalSection(FLoggerCriticalSection);
|
||||||
FIsInitialized := False;
|
FIsInitialized := False;
|
||||||
FUseGlobalLogGroupList := False;
|
FUseGlobalLogGroupList := False;
|
||||||
|
|
||||||
@ -790,6 +792,7 @@ begin
|
|||||||
if TheLazLogger = Self then TheLazLogger := nil;
|
if TheLazLogger = Self then TheLazLogger := nil;
|
||||||
ReleaseRefAndNil(FLogGroupList);
|
ReleaseRefAndNil(FLogGroupList);
|
||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
|
DoneCriticalsection(FLoggerCriticalSection);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TLazLogger.Assign(Src: TLazLogger);
|
procedure TLazLogger.Assign(Src: TLazLogger);
|
||||||
@ -806,9 +809,14 @@ end;
|
|||||||
|
|
||||||
procedure TLazLogger.Init;
|
procedure TLazLogger.Init;
|
||||||
begin
|
begin
|
||||||
if FIsInitialized then exit;
|
EnterCriticalsection(FLoggerCriticalSection);
|
||||||
DoInit;
|
try
|
||||||
FIsInitialized := True;
|
if FIsInitialized then exit;
|
||||||
|
DoInit;
|
||||||
|
FIsInitialized := True;
|
||||||
|
finally
|
||||||
|
LeaveCriticalsection(FLoggerCriticalSection);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TLazLogger.Finish;
|
procedure TLazLogger.Finish;
|
||||||
|
Loading…
Reference in New Issue
Block a user