xref: /openbsd-src/lib/libpthread/man/pthread_key_delete.3 (revision b2ea75c1b17e1a9a339660e7ed45cd24946b230e)
1.\" $OpenBSD: pthread_key_delete.3,v 1.5 1999/11/24 05:35:32 d Exp $
2.\" Copyright (c) 1996 John Birrell <jb@cimlogic.com.au>.
3.\" All rights reserved.
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\" 1. Redistributions of source code must retain the above copyright
9.\"    notice, this list of conditions and the following disclaimer.
10.\" 2. Redistributions in binary form must reproduce the above copyright
11.\"    notice, this list of conditions and the following disclaimer in the
12.\"    documentation and/or other materials provided with the distribution.
13.\" 3. All advertising materials mentioning features or use of this software
14.\"    must display the following acknowledgement:
15.\"	This product includes software developed by John Birrell.
16.\" 4. Neither the name of the author nor the names of any co-contributors
17.\"    may be used to endorse or promote products derived from this software
18.\"    without specific prior written permission.
19.\"
20.\" THIS SOFTWARE IS PROVIDED BY JOHN BIRRELL AND CONTRIBUTORS ``AS IS'' AND
21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
32.\" $FreeBSD: pthread_key_delete.3,v 1.5 1999/08/28 00:03:06 peter Exp $
33.\"
34.Dd April 4, 1996
35.Dt PTHREAD_KEY_DELETE 3
36.Os
37.Sh NAME
38.Nm pthread_key_delete
39.Nd delete a thread-specific data key
40.Sh SYNOPSIS
41.Fd #include <pthread.h>
42.Ft int
43.Fn pthread_key_delete "pthread_key_t key"
44.Sh DESCRIPTION
45The
46.Fn pthread_key_delete
47function deletes a thread-specific data key previously returned by
48.Fn pthread_key_create .
49The thread-specific data values associated with
50.Fa key
51need not be NULL at the time that
52.Fn pthread_key_delete
53is called. It is the responsibility of the application to free any
54application storage or perform any cleanup actions for data structures
55related to the deleted key or associated thread-specific data in any threads;
56this cleanup can be done either before or after
57.Fn pthread_key_delete
58is called. Any attempt to use
59.Fa key
60following the call to
61.Fn pthread_key_delete
62results in undefined behavior.
63.Pp
64The
65.Fn pthread_key_delete
66function is callable from within destructor functions. Destructor functions
67are not invoked by
68.Fn pthread_key_delete .
69Any destructor function that may have been associated with
70.Fa key
71will no longer be called upon thread exit.
72.Sh RETURN VALUES
73If successful, the
74.Fn pthread_key_delete
75function will return zero. Otherwise an error number will be returned to
76indicate the error.
77.Sh ERRORS
78.Fn pthread_key_delete
79will fail if:
80.Bl -tag -width Er
81.It Bq Er EINVAL
82The
83.Fa key
84value is invalid.
85.El
86.Sh SEE ALSO
87.Xr pthread_getspecific 3 ,
88.Xr pthread_key_create 3 ,
89.Xr pthread_setspecific 3
90.Sh STANDARDS
91.Fn pthread_key_delete
92conforms to ISO/IEC 9945-1 ANSI/IEEE
93.Pq Dq Tn POSIX
94Std 1003.1 Second Edition 1996-07-12.
95