6.61.1 Изменения в ISO/IEC 9899:1999 для локального хранения нитей
Ниже приведены изменения в ISO/IEC 9899:1999 (также известном как C99), которые документируют точный смысл расширения языка.
- 5.1.2 Среды выполнения
Добавить новый текст после первого абзаца
В любой среде выполнения нить — это поток управления в программе. Реализация может определять, может ли существовать более одной нити, связанной с программой. Способ создания дополнительных нитей, имя и тип функции, вызываемой при запуске нити, а также способы завершения нитей определяются реализацией. Однако объекты с продолжительностью хранения нити должны быть инициализированы до запуска нити.
- 6.2.4 Продолжительность хранения объектов
Добавить новый текст перед третьим абзацем
Объект, идентификатор которого объявлен с модификатором класса хранения
__thread, имеет продолжительность хранения нити. Его жизненный цикл охватывает весь период выполнения нити, и его значение хранится только один раз, до начала работы нити. - 6.4.1 Ключевые слова
Добавить
__thread. - 6.7.1 Модификаторы класса хранения
Добавить
__threadв список модификаторов класса хранения в первом абзаце.Изменить второй абзац на
За исключением
__thread, может быть указан не более одного модификатора класса хранения [...]. Модификатор__threadможет использоваться отдельно или непосредственно послеexternилиstatic.Добавить новый текст после шестого абзаца
Объявление идентификатора переменной со сферой действия блока, в котором указан
__thread, должно также указывать либоextern, либоstatic.Модификатор
__threadдолжен использоваться только с переменными.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/C99-Thread-Local-Edits.html