-
Notifications
You must be signed in to change notification settings - Fork 1
/
concurrency.mm
296 lines (296 loc) · 24.7 KB
/
concurrency.mm
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
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
<map version="1.0.0">
<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
<node CREATED="1395214823738" ID="ID_1452787946" MODIFIED="1395216308853" TEXT="concurrency">
<node CREATED="1395216150063" ID="ID_1514207859" MODIFIED="1408438905100" POSITION="right" TEXT="event(sync via comm)">
<node CREATED="1395215419583" ID="ID_1338051426" MODIFIED="1395230528276" TEXT="polling">
<node CREATED="1395215425670" ID="ID_588928871" MODIFIED="1395215434015" TEXT="poll (unix)"/>
<node CREATED="1395215434304" ID="ID_1353401652" MODIFIED="1395215441185" TEXT="select (unix)"/>
<node CREATED="1395215441412" ID="ID_1090395175" MODIFIED="1395215448352" TEXT="epoll (linux)"/>
<node CREATED="1395215448585" ID="ID_292040727" MODIFIED="1395215459456" TEXT="devpoll (solaris)"/>
<node CREATED="1395215462167" ID="ID_993986535" MODIFIED="1395215469649" TEXT="kqueue (bsd)"/>
</node>
<node CREATED="1395215514454" ID="ID_103682886" MODIFIED="1408439226978" TEXT="fd">
<node CREATED="1395215600602" ID="ID_1863504526" MODIFIED="1395215622774" TEXT="file">
<node CREATED="1395215517633" ID="ID_1752031508" MODIFIED="1395215604788" TEXT="pipe"/>
<node CREATED="1395215521143" ID="ID_1371169048" MODIFIED="1395215604788" TEXT="socket"/>
<node CREATED="1395215526601" ID="ID_897639151" MODIFIED="1395215604787" TEXT="dir"/>
<node CREATED="1395215531059" ID="ID_886201122" MODIFIED="1395215604786" TEXT="file"/>
<node CREATED="1395215539110" ID="ID_650272903" MODIFIED="1395215604785" TEXT="char"/>
<node CREATED="1395215545628" ID="ID_63529032" MODIFIED="1395215604785" TEXT="block"/>
</node>
<node CREATED="1395215628029" FOLDED="true" ID="ID_1271334794" MODIFIED="1408439228838" TEXT="eventfd">
<node CREATED="1395217884601" ID="ID_1627681175" MODIFIED="1395217912687" TEXT="inproc pipe"/>
<node CREATED="1395230410085" ID="ID_1952173988" MODIFIED="1395230451916" TEXT="read/write: int64_t"/>
</node>
<node CREATED="1395217836808" ID="ID_433311237" MODIFIED="1408439356796" TEXT="signalfd">
<node CREATED="1395230233810" ID="ID_1670623737" MODIFIED="1395230234821" TEXT="int signalfd(int fd, const sigset_t *mask, int flags);"/>
<node CREATED="1395230249307" ID="ID_739757153" MODIFIED="1395230312147" TEXT="int read(sfd,&(struct signalfd_siginfo),sizeof(struct signalfd_siginfo))"/>
<node CREATED="1395230313002" FOLDED="true" ID="ID_864160926" MODIFIED="1395230373666" TEXT="struct signalfd_siginfo">
<node CREATED="1395230341489" ID="ID_417418589" MODIFIED="1395230341489" TEXT="uint32_t ssi_signo; /* Signal number */"/>
<node CREATED="1395230341489" ID="ID_1296865941" MODIFIED="1395230341489" TEXT="int32_t ssi_errno; /* Error number (unused) */"/>
<node CREATED="1395230341490" ID="ID_1442372699" MODIFIED="1395230341490" TEXT="int32_t ssi_code; /* Signal code */"/>
<node CREATED="1395230341490" ID="ID_1920869852" MODIFIED="1395230341490" TEXT="uint32_t ssi_pid; /* PID of sender */"/>
<node CREATED="1395230341490" ID="ID_694660734" MODIFIED="1395230341490" TEXT="uint32_t ssi_uid; /* Real UID of sender */"/>
<node CREATED="1395230341490" ID="ID_907821338" MODIFIED="1395230341490" TEXT="int32_t ssi_fd; /* File descriptor (SIGIO) */"/>
<node CREATED="1395230341491" ID="ID_120904750" MODIFIED="1395230341491" TEXT="uint32_t ssi_tid; /* Kernel timer ID (POSIX timers)"/>
<node CREATED="1395230341491" ID="ID_870761129" MODIFIED="1395230341491" TEXT="uint32_t ssi_band; /* Band event (SIGIO) */"/>
<node CREATED="1395230341491" ID="ID_1135146382" MODIFIED="1395230341491" TEXT="uint32_t ssi_overrun; /* POSIX timer overrun count */"/>
<node CREATED="1395230341491" ID="ID_1126379876" MODIFIED="1395230341491" TEXT="uint32_t ssi_trapno; /* Trap number that caused signal */"/>
<node CREATED="1395230341492" ID="ID_1395060438" MODIFIED="1395230341492" TEXT="int32_t ssi_status; /* Exit status or signal (SIGCHLD) */"/>
<node CREATED="1395230341492" ID="ID_116235626" MODIFIED="1395230341492" TEXT="int32_t ssi_int; /* Integer sent by sigqueue(2) */"/>
<node CREATED="1395230341492" ID="ID_1028009250" MODIFIED="1395230341492" TEXT="uint64_t ssi_ptr; /* Pointer sent by sigqueue(2) */"/>
<node CREATED="1395230341492" ID="ID_811732586" MODIFIED="1395230341492" TEXT="uint64_t ssi_utime; /* User CPU time consumed (SIGCHLD) */"/>
<node CREATED="1395230341493" ID="ID_1587956476" MODIFIED="1395230341493" TEXT="uint64_t ssi_stime; /* System CPU time consumed (SIGCHLD) */"/>
<node CREATED="1395230341493" ID="ID_499702706" MODIFIED="1395230341493" TEXT="uint64_t ssi_addr; /* Address that generated signal">
<node CREATED="1395230341493" MODIFIED="1395230341493" TEXT="(for hardware-generated signals) */"/>
</node>
<node CREATED="1395230341493" ID="ID_164139381" MODIFIED="1395230341493" TEXT="uint8_t pad[X]; /* Pad size to 128 bytes (allow for">
<node CREATED="1395230341494" MODIFIED="1395230341494" TEXT="additional fields in the future) */"/>
</node>
</node>
</node>
<node CREATED="1395217840828" ID="ID_1809778106" MODIFIED="1395217843414" TEXT="timerfd">
<node CREATED="1395230419933" ID="ID_1028118045" MODIFIED="1395230435277" TEXT="int timerfd_create(int clockid , int flags);"/>
<node CREATED="1395230469798" ID="ID_676509061" MODIFIED="1395230519534" TEXT="int timerfd_gettime(int fd, struct itimerspec *curr_value );"/>
<node CREATED="1395230479261" ID="ID_478437116" MODIFIED="1395230512430" TEXT="int timerfd_settime(int fd, int flags, const struct itimerspec *new_value, struct itimerspec *old_value ); "/>
<node CREATED="1395230415607" ID="ID_177021342" MODIFIED="1395230460319" TEXT="read: uint64_t"/>
</node>
</node>
<node CREATED="1395217949371" FOLDED="true" ID="ID_937439329" MODIFIED="1408438908915" TEXT="async">
<node CREATED="1395217933978" FOLDED="true" ID="ID_525336688" MODIFIED="1395229130786" TEXT="signal">
<node CREATED="1395226408051" ID="ID_58857541" MODIFIED="1395226547518" TEXT="signal"/>
<node CREATED="1395226548679" FOLDED="true" ID="ID_1766143086" MODIFIED="1395228785823" TEXT="sigaction">
<node CREATED="1395226789380" FOLDED="true" ID="ID_677316689" MODIFIED="1395228439018" TEXT="struct sigaction">
<node CREATED="1395226822073" ID="ID_1611829771" MODIFIED="1395226822073" TEXT="void (*sa_handler)(int);"/>
<node CREATED="1395226822074" ID="ID_762280677" MODIFIED="1395226822074" TEXT="void (*sa_sigaction)(int, siginfo_t *, void *);"/>
<node CREATED="1395226822074" ID="ID_514475685" MODIFIED="1395226822074" TEXT="sigset_t sa_mask;"/>
<node CREATED="1395226822074" ID="ID_1744067655" MODIFIED="1395226822074" TEXT="int sa_flags;"/>
<node CREATED="1395226822075" ID="ID_1087267227" MODIFIED="1395226822075" TEXT="void (*sa_restorer)(void);"/>
</node>
<node CREATED="1395226993345" FOLDED="true" ID="ID_632785238" MODIFIED="1395228688880" TEXT="siginfo/SA_SIGINFO">
<node CREATED="1395226553813" FOLDED="true" ID="ID_938927789" MODIFIED="1395227089178" TEXT="if (sigaction->sa_flags&SA_SIGINFO)">
<node CREATED="1395226634239" ID="ID_1366063869" MODIFIED="1395226909332" TEXT="using sa_sigaction but not sa_handler"/>
</node>
<node CREATED="1395227089520" FOLDED="true" ID="ID_1579797502" MODIFIED="1395228383787" TEXT="void (*sa_sigaction)(int, siginfo_t *, void *); ">
<node CREATED="1395227109948" ID="ID_1754585524" MODIFIED="1395227128573" TEXT="third parameter is ucontext_t"/>
</node>
<node CREATED="1395227130748" FOLDED="true" ID="ID_11994988" MODIFIED="1395228034319" TEXT="struct ucontext_t <ucontext.h>">
<node CREATED="1395227212674" ID="ID_1534839671" MODIFIED="1395227242044" TEXT="ucontext_t *uc_link">
<node CREATED="1395227243071" ID="ID_844723543" MODIFIED="1395227247588" TEXT="Pointer to the context that is resumed when this context returns."/>
</node>
<node CREATED="1395227212674" ID="ID_346614529" MODIFIED="1395227272901" TEXT="sigset_t uc_sigmask">
<node CREATED="1395227212675" ID="ID_1984760325" MODIFIED="1395227291203" TEXT="The set of signals that are blocked when this context is active."/>
</node>
<node CREATED="1395227212675" ID="ID_1096350203" MODIFIED="1395227282537" TEXT="stack_t uc_stack">
<node CREATED="1395227283681" ID="ID_1923790582" MODIFIED="1395227288141" TEXT="The stack used by this context."/>
</node>
<node CREATED="1395227212675" ID="ID_1630150830" MODIFIED="1395227298668" TEXT="mcontext_t uc_mcontext ">
<node CREATED="1395227212676" ID="ID_250812057" MODIFIED="1395227303308" TEXT="A machine-specific representation of the saved context."/>
</node>
</node>
<node CREATED="1395228136258" ID="ID_1598224274" MODIFIED="1395228379943" TEXT="struct mcontext_t <ucontext.h>"/>
<node CREATED="1395228450119" ID="ID_1196682738" MODIFIED="1395228463933" TEXT="struct siginfo_t <signal>">
<node CREATED="1395228635152" ID="ID_1800869808" MODIFIED="1395228635152" TEXT="int si_signo Signal number."/>
<node CREATED="1395228635152" ID="ID_19695361" MODIFIED="1395228659161" TEXT="int si_errno If non-zero, an errno value associated with this signal, as defined in <errno.h>. "/>
<node CREATED="1395228635153" ID="ID_680790203" MODIFIED="1395228635153" TEXT="int si_code Signal code."/>
<node CREATED="1395228635153" ID="ID_604301775" MODIFIED="1395228635153" TEXT="pid_t si_pid Sending process ID."/>
<node CREATED="1395228635153" ID="ID_459841178" MODIFIED="1395228635153" TEXT="uid_t si_uid Real user ID of sending process."/>
<node CREATED="1395228635154" ID="ID_734135443" MODIFIED="1395228635154" TEXT="void *si_addr Address of faulting instruction."/>
<node CREATED="1395228635154" ID="ID_242099683" MODIFIED="1395228635154" TEXT="int si_status Exit value or signal."/>
<node CREATED="1395228635154" ID="ID_789898151" MODIFIED="1395228635154" TEXT="long si_band Band event for SIGPOLL."/>
<node CREATED="1395228635154" ID="ID_765780341" MODIFIED="1395228635154" TEXT="union sigval si_value Signal value."/>
</node>
</node>
</node>
<node CREATED="1395226415963" ID="ID_1065078450" MODIFIED="1395226423019" TEXT="signalfd"/>
<node CREATED="1395226423585" FOLDED="true" ID="ID_223055855" MODIFIED="1395228959956" TEXT="sigqueue">
<node CREATED="1395228787764" ID="ID_358121273" MODIFIED="1395228933644" TEXT="int sigqueue(pid_t pid, int sig, const union sigval value);"/>
</node>
<node CREATED="1395228960361" FOLDED="true" ID="ID_1121106110" MODIFIED="1395229126300" TEXT="sigwait/sigwaitinfo/sigtimedwait">
<node CREATED="1395228992031" ID="ID_1444393607" MODIFIED="1395228992955" TEXT="int sigwait(const sigset_t *set, int *sig);"/>
<node CREATED="1395229098714" ID="ID_898696179" MODIFIED="1395229099694" TEXT="int sigwaitinfo(const sigset_t *set, siginfo_t *info);"/>
<node CREATED="1395229108586" ID="ID_1541265807" MODIFIED="1395229120237" TEXT="int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); "/>
</node>
</node>
<node CREATED="1395215477003" FOLDED="true" ID="ID_982344588" MODIFIED="1395229132212" TEXT="sigevent <signal.h>">
<node CREATED="1395225621223" ID="ID_1984023726" MODIFIED="1395226711301" TEXT="struct sigevent">
<node CREATED="1395225766416" ID="ID_882672524" MODIFIED="1395225784868" TEXT="int sigev_notify">
<node CREATED="1395225857533" FOLDED="true" ID="ID_1220153069" MODIFIED="1395226227542" TEXT="SIGEV_NONE">
<node CREATED="1395225932045" ID="ID_756994064" MODIFIED="1395225948633" TEXT="no async notification is delivered"/>
</node>
<node CREATED="1395225879235" FOLDED="true" ID="ID_321226678" MODIFIED="1395226226291" TEXT="SIGEV_SIGNAL">
<node CREATED="1395226008446" ID="ID_1351345833" MODIFIED="1395226130473" TEXT="a signal specify by sigev_signo with a application-defined signal value is generated"/>
</node>
<node CREATED="1395225888886" FOLDED="true" ID="ID_1601605262" MODIFIED="1395226225094" TEXT="SIGEV_THREAD">
<node CREATED="1395226133935" ID="ID_405236247" MODIFIED="1395226221659" TEXT="a pthread with attri specified by sigev_notify_attributes is created and performs sigev_notify_function"/>
</node>
</node>
<node CREATED="1395225766416" ID="ID_321194601" MODIFIED="1395225794691" TEXT="int sigev_signo"/>
<node CREATED="1395225766417" FOLDED="true" ID="ID_752050392" MODIFIED="1395226281984" TEXT="union sigval sigev_value">
<node CREATED="1395226256239" ID="ID_615087170" MODIFIED="1395226260739" TEXT="union sigval">
<node CREATED="1395226248752" ID="ID_1940768385" MODIFIED="1395226268622" TEXT="int sival_int"/>
<node CREATED="1395226248753" ID="ID_626334170" MODIFIED="1395226273112" TEXT="void *sival_ptr"/>
</node>
</node>
<node CREATED="1395225766417" ID="ID_1913928180" MODIFIED="1395225843814" TEXT="void(*)(union sigval) sigev_notify_function"/>
<node CREATED="1395225766417" ID="ID_944147564" MODIFIED="1395225851614" TEXT="(pthread_attr_t *) sigev_notify_attributes"/>
</node>
</node>
<node CREATED="1395215507111" FOLDED="true" ID="ID_517093362" MODIFIED="1395230156995" TEXT="aio <aio.h>">
<node CREATED="1395218041197" ID="ID_1298054268" MODIFIED="1395221235757" TEXT="struct aiocb ">
<node CREATED="1395218061837" ID="ID_1046486697" MODIFIED="1395218091055" TEXT="int aio_fildes"/>
<node CREATED="1395218061837" ID="ID_643878975" MODIFIED="1395218094418" TEXT="off_t aio_offset"/>
<node CREATED="1395218061838" ID="ID_706135989" MODIFIED="1395218097969" TEXT="volatile void *aio_buf"/>
<node CREATED="1395218061838" ID="ID_1671936390" MODIFIED="1395218101535" TEXT="size_t aio_nbytes"/>
<node CREATED="1395218061838" FOLDED="true" ID="ID_931217390" MODIFIED="1395218447868" TEXT="int aio_reqprio">
<node CREATED="1395218369687" ID="ID_153306643" MODIFIED="1395218380706" TEXT="#ifdef _POSIX_PRIORITIZED_IO"/>
<node CREATED="1395218384708" ID="ID_1342925291" MODIFIED="1395218422555" TEXT="process_priority-aio_reqprio"/>
</node>
<node CREATED="1395218061839" ID="ID_929639202" MODIFIED="1395218109625" TEXT="struct sigevent aio_sigevent"/>
<node CREATED="1395218061839" ID="ID_1504309073" MODIFIED="1395218114145" TEXT="int aio_lio_opcode">
<node CREATED="1395218359585" ID="ID_1806833070" MODIFIED="1395218366655" TEXT="ignored"/>
</node>
</node>
<node CREATED="1395218456725" ID="ID_1061893144" MODIFIED="1395221021418" TEXT="aio_{read|write}"/>
<node CREATED="1395221021747" ID="ID_56779493" MODIFIED="1395229180114" TEXT="aio_fsync">
<node CREATED="1395221025503" ID="ID_333989678" MODIFIED="1395221039276" TEXT="int aio_fsync(int op, struct aiocb *aiocbp);"/>
<node CREATED="1395221043367" ID="ID_911817848" MODIFIED="1395221049791" TEXT="op">
<node CREATED="1395221050792" ID="ID_1817810845" MODIFIED="1395221073085" TEXT="O_SYNC fsync"/>
<node CREATED="1395221076356" ID="ID_1862552840" MODIFIED="1395221082392" TEXT="O_DSYNC fdatasync"/>
</node>
<node CREATED="1395221140637" ID="ID_1269397840" MODIFIED="1395221164148" TEXT="aiocbp->aio_sigevent">
<node CREATED="1395221166548" ID="ID_1512247977" MODIFIED="1395221213117" TEXT="indicates the desired type of asynchronous notification at completion. "/>
</node>
<node CREATED="1395221214040" ID="ID_830769757" MODIFIED="1395221231700" TEXT="aiocbp-aio_fildes"/>
<node CREATED="1395220123450" ID="ID_836862824" MODIFIED="1395229179519" TEXT="fsync/fdatasync">
<node CREATED="1395220132880" ID="ID_1075611433" MODIFIED="1395220134825" TEXT="fsync">
<node CREATED="1395220140461" ID="ID_1508888628" MODIFIED="1395220280694" TEXT="sync data imperatively & metadata reluctantly"/>
</node>
<node CREATED="1395220135356" ID="ID_838189390" MODIFIED="1395220138048" TEXT="fdatasync">
<node CREATED="1395220155345" ID="ID_118493734" MODIFIED="1395220839953" TEXT="sync data imperatively & necessary metadata(st_size) imperatively"/>
<node CREATED="1395220840764" ID="ID_251196745" MODIFIED="1395220983845" TEXT="not sync non-necessary metadata (st_atime)"/>
</node>
</node>
</node>
<node CREATED="1395218652470" FOLDED="true" ID="ID_1416286526" MODIFIED="1395224236856" TEXT="aio_{error|return}">
<node CREATED="1395218679510" ID="ID_1805391848" MODIFIED="1395219427761" TEXT="aio_error">
<node CREATED="1395218683139" ID="ID_1752128391" MODIFIED="1395218694734" TEXT="EINPROGRESS">
<node CREATED="1395218929776" ID="ID_1615002333" MODIFIED="1395218952713" TEXT="not completed yet"/>
</node>
<node CREATED="1395218704908" ID="ID_327210384" MODIFIED="1395218705810" TEXT="ECANCELED">
<node CREATED="1395218914356" ID="ID_15358997" MODIFIED="1395218927357" TEXT="canceled by aio_cancel"/>
</node>
<node CREATED="1395218827821" ID="ID_627266557" MODIFIED="1395218831280" TEXT="0">
<node CREATED="1395218955118" ID="ID_1515670975" MODIFIED="1395218964343" TEXT="already completed"/>
</node>
<node CREATED="1395218905176" ID="ID_1425066594" MODIFIED="1395219495089" TEXT="errno">
<node CREATED="1395218972118" ID="ID_813668023" MODIFIED="1395219481003" TEXT="errno of its synchronous counterpart"/>
</node>
<node CREATED="1395219495305" ID="ID_989239534" MODIFIED="1395219503292" TEXT="EINVAL"/>
</node>
<node CREATED="1395218977212" ID="ID_475531219" MODIFIED="1395219090753" TEXT="aio_return">
<node CREATED="1395218982277" ID="ID_1171924739" MODIFIED="1395219354191" TEXT="return final return status of its synchronous counterpart"/>
<node CREATED="1395219398349" ID="ID_237152087" MODIFIED="1395219410485" TEXT=" called only once for any given request, after aio_error returns something other than EINPROGRESS."/>
<node CREATED="1395219508642" ID="ID_626503320" MODIFIED="1395219510288" TEXT="EINVAL"/>
</node>
</node>
<node CREATED="1395223851802" FOLDED="true" ID="ID_1813997068" MODIFIED="1395224246375" TEXT="aio_cancel">
<node CREATED="1395223856464" ID="ID_1443788949" MODIFIED="1395223875767" TEXT="int aio_cancel(int fd, struct aiocb *aiocbp);"/>
<node CREATED="1395224179082" ID="ID_116246576" MODIFIED="1395224243768" TEXT="aio_return return -1"/>
<node CREATED="1395224204835" ID="ID_1763768008" MODIFIED="1395224233609" TEXT="aio_error return ECANCELED"/>
</node>
<node CREATED="1395224298791" FOLDED="true" ID="ID_1409485776" MODIFIED="1395224747018" TEXT="aio_suspend">
<node CREATED="1395224304357" ID="ID_426436043" MODIFIED="1395224324644" TEXT="int aio_suspend(const struct aiocb * const cblist[], int n, const struct timespec *timeout);"/>
<node CREATED="1395224517133" ID="ID_715437244" MODIFIED="1395224552363" TEXT="suspends(blocks) the calling process until">
<node CREATED="1395224554425" ID="ID_1830726901" MODIFIED="1395224593334" TEXT="at least one of the asynchronous I/O requests have completed">
<node CREATED="1395224687380" ID="ID_1491137247" MODIFIED="1395224689216" TEXT="return 0"/>
</node>
<node CREATED="1395224596561" ID="ID_344196241" MODIFIED="1395224608958" TEXT="a signal is delivered">
<node CREATED="1395224709061" ID="ID_779808385" MODIFIED="1395224722547" TEXT="return -1 ,EINTR"/>
</node>
<node CREATED="1395224620253" ID="ID_1673225562" MODIFIED="1395224628947" TEXT="timeout is not NULL and the time interval it indicates has passed.">
<node CREATED="1395224734164" ID="ID_304392580" MODIFIED="1395224743976" TEXT="return -1,EAGAIN"/>
</node>
</node>
</node>
<node CREATED="1395224900222" FOLDED="true" ID="ID_406081658" MODIFIED="1395225576374" TEXT="lio_listio">
<node CREATED="1395224902425" ID="ID_1526790321" MODIFIED="1395224912970" TEXT="int lio_listio(int mode, struct aiocb *restrict const list[restrict], int nent, struct sigevent *restrict sig); "/>
<node CREATED="1395224923704" ID="ID_1765983972" MODIFIED="1395224943996" TEXT="initiate a list of I/O requests with a single function call"/>
<node CREATED="1395225003965" ID="ID_742656782" MODIFIED="1395225235455" TEXT="mode">
<node CREATED="1395225005889" ID="ID_14941214" MODIFIED="1395225018969" TEXT="LIO_WAIT">
<node CREATED="1395225020081" ID="ID_79513565" MODIFIED="1395225027865" TEXT="sig ignored"/>
<node CREATED="1395225240398" ID="ID_1366667709" MODIFIED="1395225266847" TEXT="return 0 on success, -1 on error and errno is set"/>
</node>
<node CREATED="1395225028546" ID="ID_674393287" MODIFIED="1395225032264" TEXT="LIO_NOWAIT">
<node CREATED="1395225240398" ID="ID_279486431" MODIFIED="1395225266847" TEXT="return 0 on success, -1 on error and errno is set"/>
</node>
</node>
<node CREATED="1395225127122" ID="ID_1522305867" MODIFIED="1395225139878" TEXT="aiocb->aio_lio_opcode">
<node CREATED="1395225130321" ID="ID_1109615289" MODIFIED="1395225151278" TEXT="LIO_READ"/>
<node CREATED="1395225151605" ID="ID_175900386" MODIFIED="1395225161781" TEXT="LIO_WRITE"/>
<node CREATED="1395225205761" ID="ID_1567248665" MODIFIED="1395225208756" TEXT="LIO_NOP"/>
</node>
</node>
</node>
<node CREATED="1395215503377" FOLDED="true" ID="ID_1248410291" MODIFIED="1395229939685" TEXT="timer <sys/time.h>">
<node CREATED="1395229442774" FOLDED="true" ID="ID_977326194" MODIFIED="1395229926988" TEXT="timer_create">
<node CREATED="1395229152647" ID="ID_287485478" MODIFIED="1395229449698" TEXT="int timer_create(clockid_t clockid, struct sigevent *restrict evp, timer_t *restrict timerid); "/>
<node CREATED="1395229377217" ID="ID_1474151033" MODIFIED="1395229380900" TEXT="clockid">
<node CREATED="1395229381770" ID="ID_1380327434" MODIFIED="1395229413039" TEXT="CLOCK_{REALTIME,MONOTONIC}"/>
</node>
</node>
<node CREATED="1395229930032" FOLDED="true" ID="ID_678983889" MODIFIED="1395229936449" TEXT="timer_delete">
<node CREATED="1395229927368" ID="ID_1559311406" MODIFIED="1395229934636" TEXT="int timer_delete(timer_t timerid); "/>
</node>
<node CREATED="1395229492334" FOLDED="true" ID="ID_688855897" MODIFIED="1395229637679" TEXT="timer_settime">
<node CREATED="1395229501303" ID="ID_1817233821" MODIFIED="1395229523360" TEXT="int timer_settime(timer_t timerid, int flags, const struct itimerspec *restrict value, struct itimerspec *restrict ovalue);"/>
<node CREATED="1395229536974" ID="ID_1801486784" MODIFIED="1395229538348" TEXT="flags">
<node CREATED="1395229540674" ID="ID_1961328225" MODIFIED="1395229541663" TEXT="0">
<node CREATED="1395229599045" ID="ID_1161449406" MODIFIED="1395229603471" TEXT="relative time"/>
</node>
<node CREATED="1395229541896" ID="ID_1995247846" MODIFIED="1395229596990" TEXT="TIMER_ABSTIME">
<node CREATED="1395229605249" ID="ID_1468966866" MODIFIED="1395229608930" TEXT="absolute time"/>
</node>
</node>
</node>
<node CREATED="1395229611313" FOLDED="true" ID="ID_941054921" MODIFIED="1395229639442" TEXT="timer_gettime">
<node CREATED="1395229634243" ID="ID_573754991" MODIFIED="1395229635493" TEXT="int timer_gettime(timer_t timerid, struct itimerspec *value);"/>
</node>
<node CREATED="1395229847678" FOLDED="true" ID="ID_1437937845" MODIFIED="1395229937610" TEXT="timer_getoverrun">
<node CREATED="1395229860732" ID="ID_1453823404" MODIFIED="1395229861807" TEXT="int timer_getoverrun(timer_t timerid);"/>
</node>
</node>
</node>
</node>
<node CREATED="1395216315926" ID="ID_1348727233" MODIFIED="1408438919001" POSITION="right" TEXT="ipc(comm via sync)">
<node CREATED="1395216326533" ID="ID_423666691" MODIFIED="1395216709869" TEXT="svipc">
<node CREATED="1395216332444" ID="ID_719205483" MODIFIED="1395216437984" TEXT="shm (shared memory)">
<node CREATED="1395216515591" ID="ID_740495712" MODIFIED="1395216560002" TEXT="shm{get,ctl,dt,at}"/>
</node>
<node CREATED="1395216419756" ID="ID_1668412501" MODIFIED="1395216466988" TEXT="sem (semaphore set)">
<node CREATED="1395216577871" ID="ID_1208322997" MODIFIED="1395216642355" TEXT="sem{get,ctl,op}"/>
</node>
<node CREATED="1395216429620" ID="ID_826453475" MODIFIED="1395216461248" TEXT="msg (message queue)">
<node CREATED="1395216645005" ID="ID_748646337" MODIFIED="1395216704363" TEXT="msg{get,ctl,rcv,snd}"/>
</node>
<node CREATED="1395216491703" ID="ID_503166127" MODIFIED="1395216507465" TEXT="$ipcs $ipcrm"/>
</node>
<node CREATED="1395216716455" ID="ID_905201207" MODIFIED="1395216720019" TEXT="mutex"/>
<node CREATED="1395216737268" ID="ID_230225606" MODIFIED="1395216745571" TEXT="condvar"/>
<node CREATED="1395216720294" ID="ID_393478414" MODIFIED="1395216747247" TEXT="lock"/>
<node CREATED="1395216722931" ID="ID_1146243058" MODIFIED="1395216727256" TEXT="semaphore"/>
<node CREATED="1395216727533" ID="ID_686967961" MODIFIED="1395216731705" TEXT="barrier"/>
<node CREATED="1395216733819" ID="ID_380877650" MODIFIED="1395216736997" TEXT="monitor"/>
</node>
<node CREATED="1408330886439" FOLDED="true" ID="ID_386484745" MODIFIED="1408438902860" POSITION="right" TEXT="producer-consumer/bounded buffer">
<node CREATED="1408331009793" ID="ID_754044016" MODIFIED="1408331102885" TEXT="items are consumed only once"/>
<node CREATED="1408331084230" ID="ID_381185694" MODIFIED="1408331283070" TEXT="barrier/items are consumed by all consumers of fixed number"/>
</node>
<node CREATED="1408330818805" FOLDED="true" ID="ID_1789964009" MODIFIED="1408331258199" POSITION="right" TEXT="reader-writer/readlock-writelock/sharedlock-exclusivelock">
<node CREATED="1408331184680" ID="ID_139452521" MODIFIED="1408331191663" TEXT="reader first"/>
<node CREATED="1408331191901" ID="ID_1344222217" MODIFIED="1408331193910" TEXT="write first"/>
<node CREATED="1408331194487" ID="ID_1259386140" MODIFIED="1408331213020" TEXT="justice"/>
</node>
<node CREATED="1408330966355" ID="ID_1120938224" MODIFIED="1408330991851" POSITION="right" TEXT="philosopher dining"/>
</node>
</map>