This routine returns the value currently bound to the specified thread-specific data key. This routine can be called from a data destructor function. When threads are present, the data and keys are thread specific; they enable a library to maintain context on a per-thread basis.