DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

pthread_key_delete(PTHREAD)


pthread_key_delete -- delete thread-specific data key

Synopsis

   cc [options] -Kthread file
   

#include <pthread.h>

int pthread_key_delete(pthread_key_t *key);

Description

pthread_key_delete deletes a thread-specific data key, which was obtained from a previous call to pthread_key_create. The thread-specific data values associated with key need not be NULL at the time pthread_key_delete is called. It is the responsibility of the application to free any application storage or perform an cleanup actions for data structures related to the deleted key or associated thread-specific data in any threads; this cleanup can be done either before or after pthread_key_delete is called. Any attempt to use key following the call to pthread_key_delete results in undefined behavior.

The pthread_key_delete function is callable from within destructor functions. No destructor functions will be invoked by pthread_key_delete. Any destructor function that may have been associated with key will no longer be called upon thread exit.

The key parameter is the key to be deleted.

A typical use would be for a dynamically linked library to create a private key with pthread_key_create as part of its initialization, use pthread_getspecific and pthread_setspecific while in use, and then call pthread_key_delete before unlinking.

The application should ensure that other thread-specific data functions for key are not called concurrently with pthread_key_delete.

Return values

pthread_key_delete returns zero on success. Otherwise, an error number is returned.

Diagnostics

pthread_key_delete returns the following value if the corresponding condition is detected:

EINVAL
key is invalid.

Standards Compliance

The Single UNIX Specification, Version 2; The Open Group.

References

Intro(PTHREAD), pthread_getspecific(PTHREAD), pthread_key_create(PTHREAD), pthread_setspecific(PTHREAD), pthread(F)
© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 - 01 June 2005