blob: 47201af49bf2c74e080170658ab55fdb933daea1 [file] [log] [blame]
<assertions>
<assertion id="1" tag="ref:XSH6:33250:33262">
The function
void *pthread_setspecific(pthread_key_t key)
shall acssociate a thread-specific value with a key obtained via a previouse call to
pthread_key_create. Different threads may bind different values to the same key.
Calling pthread_setspecific with a key value not obtiained from pthread_key_create of after
the key has been deleted with pthread_key_delete is undefined.
</assertion>
<assertion id="2" tag="ref:XSH6:33263:33266">
pthread_setspecific may be called from a thread-specific data destructor function.
A call to pthread_getspecific() from a thread-specific data destructor routine may result
either in lost storage or in an infinite loop.
</assertion>
<assertion id="3" tag="ref:XSH6:33271:33273">
It returns 0 upon success, and an error number otherwise:
Shall fail if:
[ENOMEM] - Insufficient memory exists to associate the value with the key
May fail if:
[EINVAL] - The key value is invalid
</assertion>
</assertions>