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