Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
PTHREAD_SETSPECIFIC(3) FreeBSD Library Functions Manual	PTHREAD_SETSPECIFIC(3)

NAME
     pthread_setspecific -- set	a thread-specific data value

LIBRARY
     POSIX Threads Library (libpthread,	-lpthread)

SYNOPSIS
     #include <pthread.h>

     int
     pthread_setspecific(pthread_key_t key, const void *value);

DESCRIPTION
     The pthread_setspecific() function	associates a thread-specific value
     with a key	obtained via a previous	call to	pthread_key_create().  Differ-
     ent threads can bind different values to the same key.  These values are
     typically pointers	to blocks of dynamically allocated memory that have
     been reserved for use by the calling thread.

     The effect	of calling pthread_setspecific() with a	key value not obtained
     from pthread_key_create() or after	key has	been deleted with
     pthread_key_delete() is undefined.

     The pthread_setspecific() function	may be called from a thread-specific
     data destructor function, however this may	result in lost storage or
     infinite loops if doing so	causes non-NULL	key values to remain after
     [PTHREAD_DESTRUCTOR_ITERATIONS] iterations	of destructor calls have been
     made.

RETURN VALUES
     If	successful, the	pthread_setspecific() function will return zero.  Oth-
     erwise an error number will be returned to	indicate the error.

ERRORS
     The pthread_setspecific() function	will fail if:

     [ENOMEM]		Insufficient memory exists to associate	the value with
			the key.

     [EINVAL]		The key	value is invalid.

SEE ALSO
     pthread_getspecific(3), pthread_key_create(3), pthread_key_delete(3)

STANDARDS
     The pthread_setspecific() function	conforms to ISO/IEC 9945-1:1996
     (``POSIX.1'').

FreeBSD	11.1			 April 4, 1996			  FreeBSD 11.1

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | STANDARDS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=pthread_setspecific&sektion=3&manpath=FreeBSD+11.0-RELEASE+and+Ports>

home | help