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)

Reply via email to