xref: /freebsd/share/man/man3/pthread_getspecific.3 (revision fa9896e082a1046ff4fbc75fcba4d18d1f2efc19)
10f7d6847SJulian Elischer.\" Copyright (c) 1996 John Birrell <jb@cimlogic.com.au>.
20f7d6847SJulian Elischer.\" All rights reserved.
30f7d6847SJulian Elischer.\"
40f7d6847SJulian Elischer.\" Redistribution and use in source and binary forms, with or without
50f7d6847SJulian Elischer.\" modification, are permitted provided that the following conditions
60f7d6847SJulian Elischer.\" are met:
70f7d6847SJulian Elischer.\" 1. Redistributions of source code must retain the above copyright
80f7d6847SJulian Elischer.\"    notice, this list of conditions and the following disclaimer.
90f7d6847SJulian Elischer.\" 2. Redistributions in binary form must reproduce the above copyright
100f7d6847SJulian Elischer.\"    notice, this list of conditions and the following disclaimer in the
110f7d6847SJulian Elischer.\"    documentation and/or other materials provided with the distribution.
120f7d6847SJulian Elischer.\" 3. All advertising materials mentioning features or use of this software
130f7d6847SJulian Elischer.\"    must display the following acknowledgement:
140f7d6847SJulian Elischer.\"	This product includes software developed by John Birrell.
150f7d6847SJulian Elischer.\" 4. Neither the name of the author nor the names of any co-contributors
160f7d6847SJulian Elischer.\"    may be used to endorse or promote products derived from this software
170f7d6847SJulian Elischer.\"    without specific prior written permission.
180f7d6847SJulian Elischer.\"
190f7d6847SJulian Elischer.\" THIS SOFTWARE IS PROVIDED BY JOHN BIRRELL AND CONTRIBUTORS ``AS IS'' AND
200f7d6847SJulian Elischer.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
210f7d6847SJulian Elischer.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
220f7d6847SJulian Elischer.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
230f7d6847SJulian Elischer.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
240f7d6847SJulian Elischer.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
250f7d6847SJulian Elischer.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
260f7d6847SJulian Elischer.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
270f7d6847SJulian Elischer.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
280f7d6847SJulian Elischer.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
290f7d6847SJulian Elischer.\" SUCH DAMAGE.
300f7d6847SJulian Elischer.\"
310f7d6847SJulian Elischer.Dd April 4, 1996
320f7d6847SJulian Elischer.Dt PTHREAD_GETSPECIFIC 3
33a307d598SRuslan Ermilov.Os
340f7d6847SJulian Elischer.Sh NAME
350f7d6847SJulian Elischer.Nm pthread_getspecific
360f7d6847SJulian Elischer.Nd get a thread-specific data value
37d8a78688SAlexey Zelkin.Sh LIBRARY
38ec7452f1SRuslan Ermilov.Lb libpthread
390f7d6847SJulian Elischer.Sh SYNOPSIS
4032eef9aeSRuslan Ermilov.In pthread.h
410f7d6847SJulian Elischer.Ft void *
420f7d6847SJulian Elischer.Fn pthread_getspecific "pthread_key_t key"
430f7d6847SJulian Elischer.Sh DESCRIPTION
440f7d6847SJulian ElischerThe
450f7d6847SJulian Elischer.Fn pthread_getspecific
460f7d6847SJulian Elischerfunction returns the value currently bound to the specified
470f7d6847SJulian Elischer.Fa key
480f7d6847SJulian Elischeron behalf of the calling thread.
490f7d6847SJulian Elischer.Pp
500f7d6847SJulian ElischerThe effect of calling
510f7d6847SJulian Elischer.Fn pthread_getspecific
520f7d6847SJulian Elischerwith a
530f7d6847SJulian Elischer.Fa key
540f7d6847SJulian Elischervalue not obtained from
550f7d6847SJulian Elischer.Fn pthread_key_create
560f7d6847SJulian Elischeror after
570f7d6847SJulian Elischer.Fa key
580f7d6847SJulian Elischerhas been deleted with
590f7d6847SJulian Elischer.Fn pthread_key_delete
600f7d6847SJulian Elischeris undefined.
610f7d6847SJulian Elischer.Pp
629d09157aSPhilippe CharnierThe
630f7d6847SJulian Elischer.Fn pthread_getspecific
649d09157aSPhilippe Charnierfunction may be called from a thread-specific data destructor function.
65*a5019a3bSPatrick KelseyA call to
66*a5019a3bSPatrick Kelsey.Fn pthread_getspecific
67*a5019a3bSPatrick Kelseyfor the thread-specific data key being destroyed returns the value NULL,
68*a5019a3bSPatrick Kelseyunless the value is changed (after the destructor starts) by a call to
69*a5019a3bSPatrick Kelsey.Fn pthread_setspecific .
700f7d6847SJulian Elischer.Sh RETURN VALUES
710f7d6847SJulian ElischerThe
720f7d6847SJulian Elischer.Fn pthread_getspecific
730f7d6847SJulian Elischerfunction will return the thread-specific data value associated with the given
740f7d6847SJulian Elischer.Fa key .
750f7d6847SJulian ElischerIf no thread-specific data value is associated with
760f7d6847SJulian Elischer.Fa key ,
770f7d6847SJulian Elischerthen the value NULL is returned.
780f7d6847SJulian Elischer.Sh ERRORS
790f7d6847SJulian ElischerNone.
800f7d6847SJulian Elischer.Sh SEE ALSO
810f7d6847SJulian Elischer.Xr pthread_key_create 3 ,
82e0e5145cSWolfram Schneider.Xr pthread_key_delete 3 ,
830f7d6847SJulian Elischer.Xr pthread_setspecific 3
840f7d6847SJulian Elischer.Sh STANDARDS
859d09157aSPhilippe CharnierThe
860f7d6847SJulian Elischer.Fn pthread_getspecific
879d09157aSPhilippe Charnierfunction conforms to
88096841ecSRuslan Ermilov.St -p1003.1-96 .
89