| line |
true |
false |
branch |
|
35
|
2 |
46 |
arena_cap = (items > 5) ? (uint64_t)SvUV(ST(5)) : 0; |
|
36
|
47 |
1 |
const char *p = SvOK(path) ? SvPV_nolen(path) : NULL; |
|
39
|
0 |
48 |
if (!h) croak("Data::ReqRep::Shared->new: %s", errbuf); |
|
55
|
0 |
3 |
arena_cap = (items > 5) ? (uint64_t)SvUV(ST(5)) : 0; |
|
58
|
0 |
3 |
if (!h) croak("Data::ReqRep::Shared->new_memfd: %s", errbuf); |
|
71
|
0 |
1 |
if (!h) croak("Data::ReqRep::Shared->new_from_fd: %s", errbuf); |
|
80
|
3 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
3 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
3 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
82
|
0 |
3 |
RETVAL = h->backing_fd; |
|
90
|
0 |
52 |
if (!SvROK(self)) return; |
|
92
|
0 |
52 |
if (!h) return; |
|
100
|
91 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
91 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
91 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
107
|
0 |
91 |
if (r == -1) croak("Data::ReqRep::Shared: out of memory"); |
|
108
|
81 |
10 |
if (r == 1) { |
|
110
|
4 |
77 |
if (utf8) SvUTF8_on(sv); |
|
111
|
0 |
81 |
mXPUSHs(sv); |
|
112
|
0 |
81 |
mXPUSHu((UV)id); |
|
119
|
2152 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
2152 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
2152 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
126
|
2152 |
0 |
if (items > 1) timeout = SvNV(ST(1)); |
|
128
|
0 |
2152 |
if (r == -1) croak("Data::ReqRep::Shared: out of memory"); |
|
129
|
2148 |
4 |
if (r == 1) { |
|
131
|
0 |
2148 |
if (utf8) SvUTF8_on(sv); |
|
132
|
0 |
2148 |
mXPUSHs(sv); |
|
133
|
0 |
2148 |
mXPUSHu((UV)id); |
|
141
|
6 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
6 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
6 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
152
|
6 |
0 |
if (count > 0) { |
|
154
|
0 |
6 |
if (!items_buf) croak("Data::ReqRep::Shared: out of memory"); |
|
157
|
14 |
2 |
for (UV i = 0; i < count; i++) { |
|
159
|
4 |
10 |
if (last_r <= 0) break; |
|
160
|
10 |
0 |
char *c = (char *)malloc(len ? len : 1); |
|
161
|
0 |
10 |
if (!c) { oom = 1; break; } |
|
162
|
10 |
0 |
if (len) memcpy(c, str, len); |
|
171
|
6 |
0 |
EXTEND(SP, (SSize_t)(2 * n)); |
|
|
0 |
6 |
EXTEND(SP, (SSize_t)(2 * n)); |
|
172
|
10 |
6 |
for (UV j = 0; j < n; j++) { |
|
174
|
0 |
10 |
if (items_buf[j].utf8) SvUTF8_on(sv); |
|
180
|
6 |
0 |
if (last_r == -1 || oom) croak("Data::ReqRep::Shared: out of memory"); |
|
|
0 |
6 |
if (last_r == -1 || oom) croak("Data::ReqRep::Shared: out of memory"); |
|
187
|
2 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
194
|
2 |
0 |
if (items > 2) timeout = SvNV(ST(2)); |
|
197
|
0 |
2 |
if (r == -1) croak("Data::ReqRep::Shared: out of memory"); |
|
198
|
1 |
1 |
if (r != 1) XSRETURN(0); |
|
201
|
0 |
1 |
if (utf8) SvUTF8_on(sv); |
|
202
|
0 |
1 |
mXPUSHs(sv); |
|
203
|
0 |
1 |
mXPUSHu((UV)id); |
|
210
|
1 |
0 |
if (count > 1) { |
|
212
|
0 |
1 |
if (!items_buf) croak("Data::ReqRep::Shared: out of memory"); |
|
215
|
4 |
0 |
for (UV i = 1; i < count; i++) { |
|
217
|
1 |
3 |
if (last_r2 <= 0) break; |
|
218
|
3 |
0 |
char *c = (char *)malloc(len ? len : 1); |
|
219
|
0 |
3 |
if (!c) { oom = 1; break; } |
|
220
|
3 |
0 |
if (len) memcpy(c, str, len); |
|
229
|
1 |
0 |
EXTEND(SP, (SSize_t)(2 * n)); |
|
|
0 |
1 |
EXTEND(SP, (SSize_t)(2 * n)); |
|
230
|
3 |
1 |
for (UV j = 0; j < n; j++) { |
|
232
|
0 |
3 |
if (items_buf[j].utf8) SvUTF8_on(sv); |
|
238
|
1 |
0 |
if (last_r2 == -1 || oom) croak("Data::ReqRep::Shared: out of memory"); |
|
|
0 |
1 |
if (last_r2 == -1 || oom) croak("Data::ReqRep::Shared: out of memory"); |
|
244
|
2 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
251
|
1 |
1 |
max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX; |
|
258
|
10 |
1 |
while (max_count-- > 0) { |
|
260
|
1 |
9 |
if (last_r <= 0) break; |
|
262
|
9 |
0 |
char *c = (char *)malloc(len ? len : 1); |
|
263
|
9 |
0 |
if (!it || !c) { free(it); free(c); oom = 1; break; } |
|
|
0 |
9 |
if (!it || !c) { free(it); free(c); oom = 1; break; } |
|
264
|
9 |
0 |
if (len) memcpy(c, str, len); |
|
266
|
7 |
2 |
if (drained_tail) drained_tail->next = it; else drained_head = it; |
|
272
|
2 |
0 |
EXTEND(SP, (SSize_t)(2 * drained_n)); |
|
|
0 |
2 |
EXTEND(SP, (SSize_t)(2 * drained_n)); |
|
273
|
9 |
2 |
while (drained_head) { |
|
276
|
0 |
9 |
if (it->utf8) SvUTF8_on(sv); |
|
282
|
2 |
0 |
if (last_r == -1 || oom) croak("Data::ReqRep::Shared: out of memory"); |
|
|
0 |
2 |
if (last_r == -1 || oom) croak("Data::ReqRep::Shared: out of memory"); |
|
290
|
2249 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
2249 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
2249 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
296
|
0 |
2249 |
if (r == -1) croak("Data::ReqRep::Shared: invalid slot index"); |
|
297
|
1 |
2248 |
if (r == -3) croak("Data::ReqRep::Shared: response too long (max %u bytes)", h->resp_data_max); |
|
298
|
2047 |
201 |
RETVAL = (r == 1); |
|
306
|
23 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
23 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
23 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
316
|
4 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
4 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
4 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
318
|
0 |
4 |
RETVAL = h->req_cap; |
|
326
|
4 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
4 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
4 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
328
|
0 |
4 |
RETVAL = h->resp_slots; |
|
336
|
4 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
4 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
4 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
338
|
0 |
4 |
RETVAL = h->resp_data_max; |
|
346
|
4 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
4 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
4 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
348
|
4 |
0 |
RETVAL = (reqrep_size(h) == 0); |
|
356
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
365
|
29 |
0 |
if (sv_isobject(self_or_class)) { |
|
367
|
0 |
29 |
if (!h) croak("Attempted to use a destroyed object"); |
|
370
|
0 |
0 |
if (items < 2) croak("Usage: Data::ReqRep::Shared->unlink($path)"); |
|
373
|
0 |
29 |
if (!path) croak("cannot unlink anonymous or memfd channel"); |
|
374
|
0 |
29 |
if (unlink(path) != 0) |
|
381
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
383
|
0 |
0 |
RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef; |
|
391
|
3 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
3 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
3 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
418
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
420
|
0 |
0 |
if (reqrep_sync(h) != 0) |
|
427
|
5 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
5 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
5 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
430
|
0 |
5 |
if (RETVAL < 0) croak("eventfd: %s", strerror(errno)); |
|
439
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
447
|
2 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
449
|
0 |
2 |
RETVAL = h->notify_fd; |
|
457
|
2 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
460
|
2 |
0 |
RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef; |
|
468
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
476
|
5 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
5 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
5 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
479
|
0 |
5 |
if (RETVAL < 0) croak("eventfd: %s", strerror(errno)); |
|
488
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
496
|
2 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
498
|
0 |
2 |
RETVAL = h->reply_fd; |
|
506
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
509
|
1 |
0 |
RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef; |
|
517
|
4 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
4 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
|
0 |
4 |
EXTRACT_HANDLE("Data::ReqRep::Shared", self); |
|
533
|
0 |
42 |
if (!h) croak("Data::ReqRep::Shared::Client->new: %s", errbuf); |
|
546
|
0 |
1 |
if (!h) croak("Data::ReqRep::Shared::Client->new_from_fd: %s", errbuf); |
|
555
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
557
|
0 |
0 |
RETVAL = h->backing_fd; |
|
565
|
0 |
43 |
if (!SvROK(self)) return; |
|
567
|
0 |
43 |
if (!h) return; |
|
576
|
96 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
96 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
96 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
583
|
0 |
96 |
if (r == -2) croak("Data::ReqRep::Shared::Client: request too long (exceeds arena capacity or 2GB mask)"); |
|
584
|
93 |
3 |
RETVAL = (r == 1) ? newSVuv((UV)id) : &PL_sv_undef; |
|
593
|
216 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
216 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
216 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
598
|
216 |
0 |
if (items > 2) timeout = SvNV(ST(2)); |
|
602
|
0 |
216 |
if (r == -2) croak("Data::ReqRep::Shared::Client: request too long (exceeds arena capacity or 2GB mask)"); |
|
603
|
215 |
1 |
RETVAL = (r == 1) ? newSVuv((UV)id) : &PL_sv_undef; |
|
612
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
619
|
0 |
1 |
if (r == -2) croak("Data::ReqRep::Shared::Client: request too long (exceeds arena capacity or 2GB mask)"); |
|
620
|
1 |
0 |
if (r == 1) { |
|
634
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
639
|
1 |
0 |
if (items > 2) timeout = SvNV(ST(2)); |
|
643
|
0 |
1 |
if (r == -2) croak("Data::ReqRep::Shared::Client: request too long (exceeds arena capacity or 2GB mask)"); |
|
644
|
1 |
0 |
if (r == 1) { |
|
658
|
90 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
90 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
90 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
664
|
0 |
90 |
if (r == -1) croak("Data::ReqRep::Shared::Client: invalid slot index"); |
|
665
|
0 |
90 |
if (r == -2) croak("Data::ReqRep::Shared::Client: out of memory"); |
|
666
|
89 |
1 |
if (r == 1) { |
|
668
|
4 |
85 |
if (utf8) SvUTF8_on(RETVAL); |
|
680
|
6 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
6 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
6 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
686
|
6 |
0 |
if (items > 2) timeout = SvNV(ST(2)); |
|
688
|
0 |
6 |
if (r == -1) croak("Data::ReqRep::Shared::Client: invalid slot index"); |
|
689
|
0 |
6 |
if (r == -2) croak("Data::ReqRep::Shared::Client: out of memory"); |
|
690
|
3 |
3 |
if (r == 1) { |
|
692
|
0 |
3 |
if (utf8) SvUTF8_on(RETVAL); |
|
704
|
747 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
747 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
747 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
713
|
0 |
747 |
if (r == -2) croak("Data::ReqRep::Shared::Client: request too long (exceeds arena capacity or 2GB mask)"); |
|
714
|
747 |
0 |
if (r == 1) { |
|
716
|
0 |
747 |
if (out_utf8) SvUTF8_on(RETVAL); |
|
729
|
1801 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
1801 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
1801 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
738
|
0 |
1801 |
if (r == -2) croak("Data::ReqRep::Shared::Client: request too long (exceeds arena capacity or 2GB mask)"); |
|
739
|
1800 |
1 |
if (r == 1) { |
|
741
|
0 |
1800 |
if (out_utf8) SvUTF8_on(RETVAL); |
|
753
|
213 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
213 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
213 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
761
|
7 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
7 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
7 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
763
|
0 |
7 |
RETVAL = (UV)reqrep_pending(h); |
|
771
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
773
|
0 |
0 |
RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef; |
|
781
|
2 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
808
|
4 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
4 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
4 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
818
|
4 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
4 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
4 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
820
|
0 |
4 |
RETVAL = h->req_cap; |
|
828
|
4 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
4 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
4 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
830
|
4 |
0 |
RETVAL = (reqrep_size(h) == 0); |
|
838
|
4 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
4 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
4 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
840
|
0 |
4 |
RETVAL = h->resp_slots; |
|
848
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
850
|
0 |
0 |
RETVAL = h->resp_data_max; |
|
858
|
2 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
861
|
0 |
2 |
if (RETVAL < 0) croak("eventfd: %s", strerror(errno)); |
|
870
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
878
|
2 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
880
|
0 |
2 |
RETVAL = h->reply_fd; |
|
888
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
891
|
1 |
0 |
RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef; |
|
899
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
908
|
2 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
916
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Client", self); |
|
918
|
0 |
1 |
RETVAL = h->notify_fd; |
|
934
|
7 |
0 |
const char *p = SvOK(path) ? SvPV_nolen(path) : NULL; |
|
936
|
0 |
7 |
if (!h) croak("Data::ReqRep::Shared::Int->new: %s", errbuf); |
|
951
|
0 |
1 |
if (!h) croak("Data::ReqRep::Shared::Int->new_memfd: %s", errbuf); |
|
964
|
0 |
1 |
if (!h) croak("Data::ReqRep::Shared::Int->new_from_fd: %s", errbuf); |
|
973
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
975
|
0 |
1 |
RETVAL = h->backing_fd; |
|
983
|
0 |
9 |
if (!SvROK(self)) return; |
|
985
|
0 |
9 |
if (!h) return; |
|
993
|
31 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
31 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
31 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
997
|
29 |
2 |
if (reqrep_int_try_recv(h, &value, &id)) { |
|
998
|
0 |
29 |
mXPUSHi((IV)value); |
|
999
|
0 |
29 |
mXPUSHu((UV)id); |
|
1006
|
7 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
7 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
7 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1011
|
7 |
0 |
if (items > 1) timeout = SvNV(ST(1)); |
|
1012
|
7 |
0 |
if (reqrep_int_recv_wait(h, &value, &id, timeout)) { |
|
1013
|
0 |
7 |
mXPUSHi((IV)value); |
|
1014
|
0 |
7 |
mXPUSHu((UV)id); |
|
1023
|
35 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
35 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
35 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1026
|
0 |
35 |
if (r == -1) croak("Data::ReqRep::Shared::Int: invalid slot index"); |
|
1027
|
32 |
3 |
RETVAL = (r == 1); |
|
1035
|
3 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
3 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
3 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1045
|
2 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1047
|
0 |
2 |
RETVAL = h->req_cap; |
|
1055
|
2 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1057
|
0 |
2 |
RETVAL = h->resp_slots; |
|
1065
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1067
|
0 |
0 |
RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef; |
|
1075
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1077
|
1 |
0 |
RETVAL = (reqrep_int_size(h) == 0); |
|
1085
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1087
|
0 |
0 |
RETVAL = h->resp_data_max; |
|
1095
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1119
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1127
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1129
|
0 |
0 |
if (reqrep_sync(h) != 0) croak("msync: %s", strerror(errno)); |
|
1135
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1138
|
0 |
1 |
if (RETVAL < 0) croak("eventfd: %s", strerror(errno)); |
|
1147
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1155
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1157
|
0 |
1 |
RETVAL = h->notify_fd; |
|
1165
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1168
|
0 |
0 |
RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef; |
|
1176
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1184
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1187
|
0 |
1 |
if (RETVAL < 0) croak("eventfd: %s", strerror(errno)); |
|
1196
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1204
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1206
|
0 |
0 |
RETVAL = h->reply_fd; |
|
1214
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1217
|
0 |
0 |
RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef; |
|
1225
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int", self); |
|
1234
|
5 |
0 |
if (sv_isobject(self_or_class)) { |
|
1236
|
0 |
5 |
if (!h) croak("Attempted to use a destroyed object"); |
|
1239
|
0 |
0 |
if (items < 2) croak("Usage: ...->unlink($path)"); |
|
1242
|
0 |
5 |
if (!path) croak("cannot unlink anonymous or memfd channel"); |
|
1243
|
0 |
5 |
if (unlink(path) != 0) croak("unlink(%s): %s", path, strerror(errno)); |
|
1257
|
0 |
7 |
if (!h) croak("Data::ReqRep::Shared::Int::Client->new: %s", errbuf); |
|
1270
|
0 |
1 |
if (!h) croak("Data::ReqRep::Shared::Int::Client->new_from_fd: %s", errbuf); |
|
1279
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1281
|
0 |
0 |
RETVAL = h->backing_fd; |
|
1289
|
0 |
8 |
if (!SvROK(self)) return; |
|
1291
|
0 |
8 |
if (!h) return; |
|
1300
|
32 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
32 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
32 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1304
|
30 |
2 |
RETVAL = (r == 1) ? newSVuv((UV)id) : &PL_sv_undef; |
|
1313
|
2 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1317
|
2 |
0 |
if (items > 2) timeout = SvNV(ST(2)); |
|
1319
|
2 |
0 |
RETVAL = (r == 1) ? newSVuv((UV)id) : &PL_sv_undef; |
|
1328
|
25 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
25 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
25 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1332
|
0 |
25 |
if (r == -1) croak("Data::ReqRep::Shared::Int::Client: invalid slot index"); |
|
1333
|
25 |
0 |
RETVAL = (r == 1) ? newSViv((IV)value) : &PL_sv_undef; |
|
1342
|
2 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
2 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1346
|
2 |
0 |
if (items > 2) timeout = SvNV(ST(2)); |
|
1348
|
0 |
2 |
if (r == -1) croak("Data::ReqRep::Shared::Int::Client: invalid slot index"); |
|
1349
|
2 |
0 |
RETVAL = (r == 1) ? newSViv((IV)value) : &PL_sv_undef; |
|
1358
|
5 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
5 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
5 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1362
|
5 |
0 |
RETVAL = (r == 1) ? newSViv((IV)out) : &PL_sv_undef; |
|
1372
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1376
|
0 |
1 |
RETVAL = (r == 1) ? newSViv((IV)out) : &PL_sv_undef; |
|
1385
|
3 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
3 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
3 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1393
|
3 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
3 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
3 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1395
|
0 |
3 |
RETVAL = (UV)reqrep_pending(h); |
|
1403
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1413
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1415
|
0 |
1 |
RETVAL = h->req_cap; |
|
1423
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1425
|
1 |
0 |
RETVAL = (reqrep_int_size(h) == 0); |
|
1433
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1435
|
0 |
0 |
RETVAL = h->resp_slots; |
|
1443
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1445
|
0 |
0 |
RETVAL = h->resp_data_max; |
|
1453
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1471
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1473
|
0 |
0 |
RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef; |
|
1481
|
1 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
1 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1484
|
0 |
1 |
if (RETVAL < 0) croak("eventfd: %s", strerror(errno)); |
|
1493
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1501
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1503
|
0 |
0 |
RETVAL = h->reply_fd; |
|
1511
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1514
|
0 |
0 |
RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef; |
|
1522
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1531
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1539
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
|
0 |
0 |
EXTRACT_HANDLE("Data::ReqRep::Shared::Int::Client", self); |
|
1541
|
0 |
0 |
RETVAL = h->notify_fd; |