File: futex.2

package info (click to toggle)
manpages-ja 0.5.0.0.20061115-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 19,788 kB
  • ctags: 4
  • sloc: sh: 13,215; perl: 157; makefile: 117
file content (235 lines) | stat: -rw-r--r-- 6,695 bytes parent folder | download
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
.\" Page by b.hubert - may be freely modified and distributed
.\"
.\" Niki A. Rahimi (LTC Security Development, narahimi@us.ibm.com)
.\" added ERRORS section.
.\"
.\" Modified 2004-06-17 mtk
.\" Modified 2004-10-07 aeb, added FUTEX_REQUEUE, FUTEX_CMP_REQUEUE
.\"
.\" Japanese Version Copyright(C) 2003 Suzuki Takashi
.\"         all rights reserved.
.\" Translated Fri Oct 24 10:37:10 JST 2003
.\"         by Suzuki Takashi.
.\" Updated & Modified Sat Feb  5 14:28:53 JST 2005
.\"         by Yuichi SATO <ysato444@yahoo.co.jp>
.\"
.\"WORD: integer                int ѿ
.\"WORD: sleep                  Ԥ
.\"WORD: wake                   
.\"WORD: wake up                
.\"
.TH FUTEX 2 "2004-10-07" "Linux 2.6.7" "Linux Programmer's Manual"
.SH "̾"
futex \- ®桼֥åΥƥॳ
.SH ""
.nf
.sp
.B "#include <linux/futex.h>"
.sp
.B "#include <sys/time.h>"
.sp
.BI "int futex(int *" uaddr ", int " op ", int " val \
", const struct timespec *" timeout ,
.br
.BI "          int *" uaddr2 ", int " val3 );
.\" int *? void *? u32 *?
.fi
.SH ""
.PP
.BR futex ()
ƥॳϡ
ꤷɥ쥹ͤѹΤץबԤļʤ
Υɥ쥹ФԵΥץ wake () ʤ󶡤
(ץۤʤƱФ륢ɥ쥹ƱǤϤʤ⤷ʤ
ͥϰۤʤ֤˥ޥåפ줿Ʊ
.BR futex ()
ǻȤ褦ǥޥåפ)
ŵŪˤϡfutex 
.BR futex (7)
˵Ƥ褦ˡ
ͭΥå礹νΤѤ롣
.PP
.BR futex (7)
桼֤Ƕʤλʤä硢
ͥۤ뤿˥ƥॳƤɬפ롣
ۤȤΤϡƤӽФץ sleep (Ԥ) ꡢȿФ
Ԥץ wake ꤹ뤳Ȥ̣롣
.PP
δؿƤӽФץ
.BR futex (7)
˵ҤƤ륻ޥƥ¤Ǥ뤳Ȥ׵ᤵ롣
ΥޥƥˤϰܿԲǽʥ֥̿񤯤Ȥޤޤ롣
ΤȤϸ futex Υ桼ΤۤȤɤϼºݤϥ饤֥κԤǤꡢ
̥ץꥱγȯԤǤϤʤȤȤǤ롣
.PP
.I uaddr
ϡ󥿤Ǽ롢
饤Ȥ·ä int ѿؤƤɬפ롣
¹Ԥ
.I op
ѥ᡼𤷤ơ
.I val
ȤȤϤ롣
.PP
ߤΤȤ 5 ĤƤ:
.TP
.B FUTEX_WAIT
 futex ɥ쥹
.I uaddr
˻ꤵ줿
.I val
ޤǼƤ뤫ɤԲʬǸڤ
sleep ֤
 futex ɥ쥹Ф FUTEX_WAKE ¹ԤΤԤġ
.I timeout
 NULL Ǥʤ硢Ƥ
Ԥ֤κͤɽNULL ξ̵ɽ

.I uaddr2

.I val3
̵뤵롣

.BR futex (7)
˾Ȥ餷碌ȡθƤӽФ
ȤΥǥȤ (ɽ) ˤʤä˼¹Ԥ졢
̤Υץ futex  FUTEX_WAKE ¹Ԥޤ
sleep 롣
.TP
.B FUTEX_WAKE
Ǥϻꤷ futex ɥ쥹ФԤ֤
(ʤ FUTEX_WAIT )  \fIval\fR ĤΥץ wake 롣

.IR timeout ,
.IR uaddr2 ,
.I val3
̵뤵롣

\fBfutex\fR(4) ˾Ȥ餷碌ȡ

ȤΥ󥯥ȤԤץȽ
futex ͤ 1 ꤵ줿 (ѲǽǤ뤳Ȥɽ) ˼¹Ԥ롣
.TP
.B FUTEX_FD
Ʊ wake б뤿ᡢϥեǥץ futex 
ϢŤ롣
.\" .BR poll (2)
.\" ŬƤ롣
̤Υץ FUTEX_WAKE ¹Ԥȡ
ץ
.I val
Ϥ줿ʥֹΥʥ롣
ƤӽФץϻѸ塢֤줿եǥץ
ʤФʤʤ

.IR timeout ,
.IR uaddr2 ,
.I val3
̵뤵롣

֤ɻߤ뤿ᡢƤӽФץ FUTEX_FD ֤ä
futex  up 줿ɤǧʤФʤʤ
.TP
.BR FUTEX_REQUEUE " (Linux 2.5.70 ʹ)"
ϡ
FUTEX_WAKE ȤƤơ wake ƤƤΥץ
¾ futex ɬפˡ
ֽäη˽ (thundering herd)׸̤򤱤뤿Ƴ줿
θƤӽФ
.I val
ĤΥץ wake ɥ쥹
.I uaddr2
 futex ԤäƤ¾ƤΥץ٥塼ˤ롣

.I timeout

.I val3
̵뤵롣
.TP
.BR FUTEX_CMP_REQUEUE " (Linux 2.6.7 ʹ)"
.\"Osato: 
.\"Osato: intended 褯ʬʤ
.\"Osato: 
ΰդ FUTEX_REQUEUE Ȥ˶礬뤿ᡢ
FUTEX_CMP_REQUEUE Ƴ줿
 FUTEX_REQUEUE ȻƤ뤬
.I uaddr

.I val3
ޤݻƤ뤫ǽ˥å롣
ݻƤʤ硢顼 EAGAIN ֤롣

.I timeout
̵뤵롣
.SH "֤"
.PP
ɤ¹Ԥ줿ˤäơ֤ͤϰۤʤ̣ġ
.TP
.B FUTEX_WAIT
ץ \fIFUTEX_WAKE\fR θƤӽФ wake  0 ֤
ॢȤξ硢ETIMEOUT ֤롣
futex ꤵ줿ͤʤ硢EWOULDBLOCK ֤롣
ʥ (ޤ¾ε wake ˤä) EINTR ֤
.TP
.B FUTEX_WAKE
wake ץο֤
.TP
.B FUTEX_FD
futex ˴ϢŤ줿ʥեǥץ֤
.TP
.B FUTEX_REQUEUE
wake ץο֤
.TP
.B FUTEX_CMP_REQUEUE
wake ץο֤
.SH "顼"
.TP
.B EACCES
futex ɤ߹ߥʤä
.TP
.B EAGAIN
FUTEX_CMP_REQUEUE ͽʤ futex ͤĤä
(϶򼨤Ƥ뤫⤷ʤ
ξϰ FUTEX_WAKE Ȥ)
.TP
.B EFAULT
桼֤
.I timeout
ξݤ˥顼ȯ
.TP
.B EINVAL
Ƥʤޤϥڡ饤Ȥǥ顼ȯ
.TP
.B ENFILE
ץ󤵤Ƥեƥ¤ã
.SH ""
.PP
֤ futex ϥɥ桼ưפ˻ȤȤΤǤ복ǰȤ
տޤ줿ΤǤϤʤ
Ԥϡ֥˴Ƥꡢʲ˵󤲤 futex 桼֥饤֥
ɤ߽Ƥ뤳Ȥ׵ᤵ롣
.\" .SH ""
.\" .PP
.\" futex  Hubertus Franke (IBM Thomas J. Watson Research Center),
.\" Matthew Kirkwood, Ingo Molnar (Red Hat),
.\" Rusty Russell (IBM Linux Technology Center) ߷פ
.\" Υڡ bert hubert 
.SH С
.PP
ǽ futex б Linux 2.5.7 Ȥ߹ޤ줿
嵭ΥޥƥȤϰۤʤ롣
ǼƤ륻ޥƥ
4 ĤΰΥƥॳϡLinux 2.5.40 Ƴ줿
Linux 2.5.70 Ǥ 1 Ĥΰɲä줿
Linux 2.6.7 Ǥ 6 ܤΰɲä줿
ϱs390 ƥ̤ΤΤǤ롣
.SH 
.\"Omotoki: Minux  Linux  typo ?
Υƥॳ Linux ȼǤ롣
.SH Ϣ
.PP
.BR futex (7), 
`Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux'
(proceedings of the Ottawa Linux Symposium 2002), 
futex λ饤֥, futex-*.tar.bz2
<URL:ftp://ftp.nl.kernel.org:/pub/linux/kernel/people/rusty/>.