Параллельное и распределенное программирование на С++ (Хьюз, Хьюз) - страница 394

Размер стека определяется как необязательный атрибут, поскольку само понятие стека зависит от конкретного компьютера. Например, в одних реализациях невозможно изменить размер стека, а в других в этом вообще нет необходимости, поскольку страницы стека могут быть несмежными и выделяться (и освобождаться) по требованию.

Механизм атрибутов разработан по большей мере ради расширяемости. Будущие дополнения к механизму атрибутов или любому объекту атрибутов, определенному в этом томе (разделе) стандарта 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 () является ошибкой.