Branch Coverage

Shared.xs
Criterion Covered Total %
branch 392 950 41.2


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;