Размер стека определяется как необязательный атрибут, поскольку само понятие стека зависит от конкретного компьютера. Например, в одних реализациях невозможно изменить размер стека, а в других в этом вообще нет необходимости, поскольку страницы стека могут быть несмежными и выделяться (и освобождаться) по требованию.
Механизм атрибутов разработан по большей мере ради расширяемости. Будущие дополнения к механизму атрибутов или любому объекту атрибутов, определенному в этом томе (разделе) стандарта IEEE Std 1003.1-2001, необходимо вносить с чрезвычайной тщательностью, чтобы они не отразились на совместимости на уровне машинных кодов.
Объекты атрибутов, даже создаваемые с помощью таких функций динамического распределения памяти, как malloc(), во время компиляции могут иметь фиксированный размер. Это означает, например, что функция pthread_create () в реализации с дополнениями для использования типа pthread_attr_t не сможет «видеть» за пределами области, которую двоичное приложение считает допустимой. Это говорит о том, что реализации должны поддерживать в объекте атрибутов поле размера, а также информацию о версии, если дополнения приходится использовать в различных направлениях (или объединять продукты различных изготовителей).
Будущие направления
Отсутствуют.
Смотри также
>pthread_attr_getstackaddr(), pthread_attr_getstacksize(), pthread_attr_getdetachstate (), thread_create (), том Base Definidons стандарта IEEEStd 1003.1-2001, .
Последовательность внесения изменений
Функции впервые реализованы в выпуске Issue 5. Включены для согласования с расширение м POSIX Threads Extension.
Issue 6
Функции pthread_attr_destroy() и pthread_attr_init() от м ечены как часть опции Threads.
При м еняется интерпретация IEEE PASC Interpretation 1003.1 #107, в которой указывается, что результат инициализации уже инициализированного объекта атрибутов потока не опре д елен.
pthread_attr_getdetachstate, pthread_attr__setdetachstate
Имя
pthread_attr_getdetachstate, pthread_attr__setdetachstate — функции считывания и записи атрибута detachstate.
Синопсис
THR #include
int pthread_attr_getdetachstate (
const pthread_attr_t *attr, int *detachstate) ;
int pthread_attr_setdetachstate (pthread_attr_t *attr,
int detachstate) ;
Описание
Атрибут detachstate управляет тем, создается ли поток в открепленно м (отсоединенно м) состоянии. Если поток создается открепленным, то использование его идентификационного но м ера (ID) функция м и pthread_detach() или pthread_join () является ошибкой.