PR_SetThreadPrivate¶
设置每个线程的私有数据。
语法¶
#include <prthread.h>
PRStatus PR_SetThreadPrivate(PRUintn index, void *priv);
参数¶
PR_SetThreadPrivate 具有以下参数
index
每个线程私有数据表中的索引。
priv
每个线程的私有数据,或者更可能是指向数据的指针。
返回值¶
该函数返回以下值之一
如果成功,则返回
PR_SUCCESS
。如果索引无效,则返回
PR_FAILURE
。
描述¶
如果线程已经与之关联了非 NULL
私有数据,并且如果已知该索引的析构函数(不为 NULL
),则 NSPR 会在设置新数据值之前调用与该索引关联的析构函数。索引处的指针将与 NULL
交换。如果交换出的值不为 NULL
,则会调用析构函数。返回时,与索引关联的私有数据将重新分配新私有数据的值,即使它为 NULL
。运行时不会对私有数据提供任何保护。析构函数在运行时不持有任何锁的情况下被调用。同步是客户端的责任。
在线程终止之前,消除索引处线程私有数据的唯一方法是调用 PR_SetThreadPrivate 并传入 NULL
参数。这会导致调用该索引的析构函数,然后在表中分配一个 NULL
。客户端不得在首先将其从表中消除之前删除非 NULL
私有数据的引用对象。