This routine sets the value associated with the specified thread-
specific data key. If a value is defined for the key (that is,
the current value is not NULL), the new value is substituted for
it. The key is obtained by a previous call to tis_key_create().
Do not call this routine from a data destructor function. Doing
so could lead to a memory leak or an infinite loop.