Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.ru

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Что означает конструкция в TThread [HPPGEN('volatile bool FTermi


Кто б сомневался ©   (11.03.17 02:32

Что означает конструкция в 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]

http://docwiki.embarcadero.com/Libraries/Berlin/en/System.HPPGENAttribute


Игорь Шевченко ©   (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]

Значит, что значение может измениться "само собой" - поэтому компилятор не может оптимизировать работу с этим полем. Если два раза подряд идут одинаковые сравнения, например - то их нельзя соптимизировать в одно; если ты присвоил значение - это не значит, что при чтении ты получишь его обратно - и т.п.


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо