pthread_setspecific()

Ассоциировать данные с потоко-специфичным ключом (TLS)

Прототип:

#include <pthread.h>
int pthread_setspecific( pthread_key_t key,
const void *value );

Аргументы:

key
Ключ, связанный с данными, которые требуется установить. См. pthread_key_create().
value
Значение, которое требуется сохранить.

Библиотека:

libc

Описание:

Функция pthread_setspecific() связывает конкретное потоко-специфичное значение value с потоко-специфичным ключом данных key.

Можно вызвать эту функцию из потоко-специфичной функции деструктора данных.


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

Возвращаемое значение:

EOK
Успешное завершение.
ENOMEM
Недостаточно памяти для хранения значения потоко-специфичных данных value.
EINVAL
Недопустимый потоко-специфичный ключ данных key.

Примеры:

См. pthread_key_create().

Классификация:

POSIX 1003.1 THR

Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Предостережения:

Вызов pthread_setspecific() с value, отличным от NULL, может привести к потере памяти или бесконечным циклам, если value не было возвращено функцией pthread_key_create().

Тематические ссылки:

pthread_key_create(), pthread_getspecific()




Предыдущий раздел: Описание API системной библиотеки