thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anton Shchyrov (JIRA)" <j...@apache.org>
Subject [jira] [Created] (THRIFT-4468) Make the class TGUIConsole thread-safe
Date Mon, 22 Jan 2018 14:30:00 GMT
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)

Mime
View raw message