[fpc-devel] Suspicion about TThread.Synchronize

Martin Frb lazarus at mfriebe.de
Thu Feb 7 00:10:24 CET 2019

On 06/02/2019 23:38, Luca Olivetti wrote:
> and the exception logged (though the logging in turn uses synchronize).

What OS?

On Windows you can use  LazLogger.  (in Laz 2.0.0)
It uses TThread.Queue by default, but you can replace 
TLazLoggerFileHandleMainThread with TLazLoggerFileHandleThreadSave

function TLazLoggerFile.GetFileHandle: TLazLoggerFileHandle;
   if FFileHandle = nil then
     FFileHandle := TLazLoggerFileHandleMainThread.Create;
   Result := FFileHandle;

That means that writeln is called in the same thread. (works (at least) 
on windows, but make sure the handle is opened by the main thread, or it 
will be closed by whatever thread did open it, when that thread exits).

More information about the fpc-devel mailing list