Anton Shchyrov created THRIFT-4468:
--------------------------------------
Summary: Make the class TGUIConsole thread-safe
Key: THRIFT-4468
URL: https://issues.apache.org/jira/browse/THRIFT-4468
Project: Thrift
Issue Type: Improvement
Components: Delphi - Library
Affects Versions: 0.11.0
Reporter: Anton Shchyrov
In Delphi all methods that refer to VCL should do it only from main thread. But
class TGUIConsole despite the name does not contain any synchronization methods.
My suggestion is to rename this class to TStringsConsole, make method
InternalWrite virtual and make new class TGUIConsole inherits from
TStringsConsole
{{ TGUIConsole = class( TStringsConsole )}}
{{ protected}}
{{ procedure InternalWrite(const S: string; bWriteLine: Boolean); override;}}
{{ end;}}
{{{ TGUIConsole }}}
{{procedure TGUIConsole.InternalWrite(const S: string; bWriteLine: Boolean);}}
{{begin}}
{{ if TThread.CurrentThread.ThreadID <> MainThreadID then begin}}
{{ TThread.Synchronize(nil, procedure}}
{{ begin}}
{{ inherited InternalWrite(S, bWriteLine);}}
{{ end}}
{{ );}}
{{ end else}}
{{ inherited InternalWrite(S, bWriteLine);}}
{{end;}}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)