[ https://issues.apache.org/jira/browse/THRIFT-4468?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jens Geyer updated THRIFT-4468: ------------------------------- Issue Type: Sub-task (was: Improvement) Parent: THRIFT-4473 > Make the class TGUIConsole thread-safe > -------------------------------------- > > Key: THRIFT-4468 > URL: https://issues.apache.org/jira/browse/THRIFT-4468 > Project: Thrift > Issue Type: Sub-task > Components: Delphi - Library > Affects Versions: 0.11.0 > Reporter: Anton Shchyrov > Priority: Major > > 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)