Конференция "Основная" » Что означает конструкция в TThread [HPPGEN('volatile bool FTermi
 
  • Кто б сомневался © (11.03.17 02:32) [0]
    Что означает конструкция в TThread   [HPPGEN('volatile bool FTerminated')]?

    TThread = class
     private type
       PSynchronizeRecord = ^TSynchronizeRecord;
       TSynchronizeRecord = record
         FThread: TObject;
         FMethod: TThreadMethod;
         FProcedure: TThreadProcedure;
         FSynchronizeException: TObject;
       end;
     private class var
       FProcessorCount: Integer;
     private
       FThreadID: TThreadID;
    {$IF Defined(MSWINDOWS)}
       FHandle: THandle platform;
    {$ELSEIF Defined(POSIX)}
       FCreateSuspendedMutex: pthread_mutex_t;
       FInitialSuspendDone: Boolean;
    {$ENDIF POSIX}
       FStarted: Boolean;
       FCreateSuspended: Boolean;
    [HPPGEN('volatile bool FTerminated')]
       FTerminated: Boolean;
       FSuspended: Boolean;
  • Германн © (11.03.17 02:35) [1]
    А где ты нарыл такое?
  • Германн © (11.03.17 02:36) [2]
    Имхо такое не скомпилируется ни в одной знакомой мне версии Дельфи.
  • Кто б сомневался © (11.03.17 02:39) [3]
    В System.Classes.
    Berlin 10 update 2.
  • Германн © (11.03.17 02:50) [4]
    Ну если так, то я пас.
  • Кто б сомневался © (11.03.17 03:21) [5]
    Наверное это связано с

    https://en.wikipedia.org/wiki/Volatile_(computer_programming)
  • DayGaykin © (11.03.17 05:07) [6]
    Аналог явовской аннотации
  • DVM © (11.03.17 10:03) [7]
  • Игорь Шевченко © (11.03.17 10:48) [8]
    Открой для себя атрибуты в старших версиях дельфи :)
  • Кто б сомневался © (11.03.17 11:11) [9]
    Еще бы узнать нафиг они нужны. И почему на флаге FTerminated.
  • Игорь Шевченко © (11.03.17 16:50) [10]
    Кто б сомневался ©   (11.03.17 11:11) [9]


    > Еще бы узнать нафиг они нужны


    Затем же, зачем и в C# - наделять дополнительными свойствами поля, методы, классы...


    > И почему на флаге FTerminated.


    Для языка С++ добавить модификатор volatile конкретно этому полю.
  • Кто б сомневался © (11.03.17 23:37) [11]
    Между прочим у Tobject нашел такое поле:

    protected
       [Volatile] FRefCount: Integer;

    Что это значит?
  • Styx (12.03.17 02:03) [12]
    Значит, что значение может измениться "само собой" - поэтому компилятор не может оптимизировать работу с этим полем. Если два раза подряд идут одинаковые сравнения, например - то их нельзя соптимизировать в одно; если ты присвоил значение - это не значит, что при чтении ты получишь его обратно - и т.п.
 
Конференция "Основная" » Что означает конструкция в TThread [HPPGEN('volatile bool FTermi
Есть новые Нет новых   [134431   +12][b:0][p:0.001]