summaryrefslogtreecommitdiffstats
path: root/doc/new_chapters/key.t
blob: 57419655ffb50f7ec32b5675f6865c75d6bac0fa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
@c
@c  COPYRIGHT (c) 1988-1998.
@c  On-Line Applications Research Corporation (OAR).
@c  All rights reserved.
@c
@c  $Id$
@c

@chapter Key Manager

@section Introduction

The key manager ...

The directives provided by the key manager are:

@itemize @bullet
@item @code{pthread_key_create} -
@item @code{pthread_key_delete} -
@item @code{pthread_setspecific} -
@item @code{pthread_getspecific} -
@end itemize

@section Background

@section Operations

@section Directives

This section details the key manager's directives.
A subsection is dedicated to each of this manager's directives
and describes the calling sequence, related constants, usage,
and status codes.

@page
@subsection pthread_key_create

@subheading CALLING SEQUENCE:

@example
#include <pthread.h>

int pthread_key_create(
  pthread_key_t  *key,
  void          (*destructor)( void * )
);
@end example

@subheading STATUS CODES:

@table @b
@item EAGAIN
There were not enough resources available to create another key.

@item ENOMEM
Insufficient memory exists to create the key.

@end table

@page
@subsection pthread_key_delete
 
@subheading CALLING SEQUENCE:
 
@example
#include <pthread.h>
 
int pthread_key_delete(
  pthread_key_t  key,
);
@end example
 
@subheading STATUS CODES:
 
@table @b
@item EINVAL
The key was invalid
 
@end table

@subheading DESCRIPTION:

@subheading NOTES:

@page
@subsection pthread_setspecific

@subheading CALLING SEQUENCE:

@example
#include <pthread.h>

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

@subheading STATUS CODES:
@table @b
@item EINVAL
The specified key is invalid.

@end table

@subheading DESCRIPTION:

@subheading NOTES:

@page
@subsection pthread_getspecific

@subheading CALLING SEQUENCE:

@example
#include <pthread.h>

void *pthread_getspecific(
  pthread_key_t  key
);
@end example

@subheading STATUS CODES:
@table @b
@item NULL
There is no thread-specific data associated with the specified key.

@item non-NULL
The data associated with the specified key.

@end table

@subheading DESCRIPTION:

@subheading NOTES: