©
本文檔使用 php中文網手册 發布
在头文件<threads.h>中定义 | ||
---|---|---|
int tss_set(tss_t tss_id,void * val); | (自C11以来) |
将当前线程的tss_id标识的线程专有存储的值设置为val。 不同的线程可以为同一个键设置不同的值。
析构函数如果可用,则不会被调用。
tss_id | - | 线程特定的存储密钥,从tss_create获取,不被tss_delete删除 |
---|---|---|
val | - | 设置线程专有存储的值 |
如果成功则返回thrd_success,否则返回thrd_error。
这个函数的POSIX等价物是pthread_setspecific。
通常,TSS用于存储指向已被保留供调用线程使用的动态分配内存块的指针。
可以在TSS析构函数中调用tss_set。 如果析构函数在TSS存储中以非NULL值退出,它将被thrd_exit重试直到TSS_DTOR_ITERATIONS次,之后存储将会丢失。
int thread_func(void *arg) { tss_t key; if (thrd_success == tss_create(&key, free)) { tss_set(key, malloc(4)); // stores a pointer on TSS // ... }} // calls free() for the pointer stored on TSS
C11标准(ISO / IEC 9899:2011):
7.26.6.4 tss_set 函数(p:387)
tss_get(C11) | 从线程专有存储器读取(功能) |
---|