PTHREAD_ATTR_SETDETACHSTATE(3)

ИМЯ
pthread_attr_setdetachstate, pthread_attr_getdetachstate - изменяет/возвращает из объекта атрибутов нити атрибут отключённости

ОБЗОР
#include <pthread.h>

int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);
int pthread_attr_getdetachstate(const pthread_attr_t *attr, int *detachstate);

Компилируется и компонуется вместе с -pthread.

ОПИСАНИЕ
Функция pthread_attr_setdetachstate() изменяет атрибут состояния отключённости у объекта атрибутов нити, на который указывает attr, на значение, заданное в detachstate. Атрибутом состояния отключённости определяется, будет ли нить, созданная с объектом атрибутов нити attr, находиться в присоединяемом или отключённом состоянии.

В detachstate можно указать следующие значения:

PTHREAD_CREATE_DETACHED
    Нити, создаваемые с attr, будут созданы в отключённом состоянии.

PTHREAD_CREATE_JOINABLE
    Нити, создаваемые с attr, будут созданы в присоединяемом состоянии.

Значением по умолчанию для атрибута состояния отключённости в инициализируемом объекте атрибутов нити является PTHREAD_CREATE_JOINABLE.

Функция pthread_attr_getdetachstate() возвращает атрибут состояния отключённости нити у объекта атрибутов нити, на который указывает attr, в буфер на который указывает detachstate.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении эти функции возвращают 0; при ошибке возвращается ненулевой номер ошибки.

ОШИБКИ
Функция pthread_attr_setdetachstate() может завершиться со следующей ошибкой:

EINVAL
    Указано неверное значение в detachstate.

АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение
pthread_attr_setdetachstate(), pthread_attr_getdetachstate() | Безвредность в нитях | MT-Safe

СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX.1-2001, POSIX.1-2008.

ЗАМЕЧАНИЯ
Дополнительную информацию об отключённых и присоединяемых нитях смотрите в pthread_create(3).

Нить, созданная в присоединяемом состоянии, должна быть в последствии присоединена с помощью pthread_join(3) или отключена с помощью pthread_detach(3); смотрите pthread_create(3).

Если указать ID нити, которая была создана в отключённом состоянии в вызове pthread_detach(3) или pthread_join(3), то возникает ошибка.

ПРИМЕР
Смотрите pthread_attr_init(3).

СМОТРИТЕ ТАКЖЕ
pthread_attr_init(3), pthread_create(3), pthread_detach(3), pthread_join(3), pthreads(7)