diff options
Diffstat (limited to 'lib/libpthread/man/pthread_key_create.3')
-rw-r--r-- | lib/libpthread/man/pthread_key_create.3 | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/lib/libpthread/man/pthread_key_create.3 b/lib/libpthread/man/pthread_key_create.3 index 76fc187..376ecf2 100644 --- a/lib/libpthread/man/pthread_key_create.3 +++ b/lib/libpthread/man/pthread_key_create.3 @@ -44,9 +44,11 @@ The .Fn pthread_key_create function creates a thread-specific data key visible to all threads in the -process. Key values provided by +process. +Key values provided by .Fn pthread_key_create -are opaque objects used to locate thread-specific data. Although the same +are opaque objects used to locate thread-specific data. +Although the same key value may be used by different threads, the values bound to the key by .Fn pthread_setspecific @@ -54,19 +56,23 @@ are maintained on a per-thread basis and persist for the life of the calling thread. .Pp Upon key creation, the value NULL is associated with the new key in all -active threads. Upon thread creation, the value NULL is associated with all +active threads. +Upon thread creation, the value NULL is associated with all defined keys in the new thread. .Pp -An optional destructor function may be associated with each key value. At +An optional destructor function may be associated with each key value. +At thread exit, if a key value has a non-NULL destructor pointer, and the thread has a non-NULL value associated with the key, the function pointed -to is called with the current associated value as its sole argument. The +to is called with the current associated value as its sole argument. +The order of destructor calls is unspecified if more than one destructor exists for a thread when it exits. .Pp If, after all the destructors have been called for all non-NULL values with associated destructors, there are still some non-NULL values with -associated destructors, then the process is repeated. If, after at least +associated destructors, then the process is repeated. +If, after at least [PTHREAD_DESTRUCTOR_ITERATIONS] iterations of destructor calls for outstanding non-NULL values, there are still some non-NULL values with associated destructors, the implementation stops calling destructors. @@ -75,7 +81,8 @@ If successful, the .Fn pthread_key_create function will store the newly created key value at the location specified by .Fa key -and returns zero. Otherwise an error number will be returned to indicate +and returns zero. +Otherwise an error number will be returned to indicate the error. .Sh ERRORS .Fn pthread_key_create |