Copyright Digital Equipment Corp. All rights reserved.

Description

   This routine sets the thread-specific data value associated with
   the specified key for the current thread. If a value is defined
   for the key in this thread (the current value is not NULL),
   the new value is substituted for it. The key is obtained by a
   previous call to pthread_key_create().

   Different threads can bind different values to the same key.
   These values are typically pointers to blocks of dynamically
   allocated memory that are reserved for use by the calling thread.

   Do not call this routine from a thread-specific data destructor
   function.

   Note that although the type for value (void *) implies that it
   represents an address, the type is being used as a "universal
   scalar type." The Threads Library simply stores value for later
   retrieval.