Branch Coverage

Shared.xs
Criterion Covered Total %
branch 604 1324 45.6


line true false branch
121 33 33 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
123 1 65 if (!h) croak("Data::PubSub::Shared::Int->new: %s", errbuf);
137 0 1 if (!h) croak("Data::PubSub::Shared::Int->new_memfd: %s", errbuf);
150 0 1 if (!h) croak("Data::PubSub::Shared::Int->new_from_fd: %s", errbuf);
159 1 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
161 0 1 RETVAL = h->backing_fd;
169 0 67 if (!SvROK(self)) return;
171 0 67 if (!h) return;
180 468 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 468 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 468 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
182 468 0 RETVAL = pubsub_int_publish(h, (int64_t)value);
190 5 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 5 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 5 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
193 1 4 if (count == 0) { RETVAL = 0; }
195 0 4 if (count > 8192) croak("publish_multi: too many values (%u > 8192)", count);
197 208 4 for (uint32_t i = 0; i < count; i++)
209 1 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
218 21 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 21 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 21 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
221 0 21 if (!sub) croak("subscribe: out of memory");
231 26 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 26 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 26 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
234 0 26 if (!sub) croak("subscribe_all: out of memory");
244 1 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
246 0 1 RETVAL = h->capacity;
254 13 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 13 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 13 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
256 0 13 RETVAL = (UV)__atomic_load_n(&h->hdr->write_pos, __ATOMIC_RELAXED);
264 2 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 2 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 2 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
266 1 1 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
274 5 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 5 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 5 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
296 4 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 4 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 4 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
304 4 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 4 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 4 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
306 0 4 if (pubsub_sync(h) != 0)
314 1 0 if (sv_isobject(self_or_class)) {
316 0 1 if (!h) croak("Attempted to use a destroyed object");
319 0 0 if (items < 2) croak("Usage: Data::PubSub::Shared::Int->unlink($path)");
322 0 1 if (!path) croak("cannot unlink anonymous or memfd pubsub");
323 0 1 if (unlink(path) != 0)
330 9 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 9 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 9 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
333 0 9 if (RETVAL < 0) croak("eventfd: %s", strerror(errno));
342 1 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
350 1 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
352 0 1 RETVAL = h->notify_fd;
360 4 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 4 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 4 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
363 4 0 RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef;
371 4 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 4 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 4 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
381 0 47 if (!SvROK(self)) return;
383 0 47 if (!sub) return;
385 47 0 if (sub->userdata) SvREFCNT_dec((SV *)sub->userdata);
392 35 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 35 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 35 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
396 31 4 if (r == 1)
408 2 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
411 10 2 for (UV i = 0; i < count; i++) {
413 0 10 if (r != 1) break;
414 0 10 mXPUSHi((IV)value);
421 9 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 9 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 9 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
425 9 0 if (items > 1) timeout = SvNV(ST(1));
427 8 1 if (r == 1)
438 8 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 8 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 8 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
442 1 7 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
443 1027 1 while (max_count-- > 0 && pubsub_int_poll(sub, &value))
1020 7 while (max_count-- > 0 && pubsub_int_poll(sub, &value))
444 0 1020 mXPUSHi((IV)value);
451 3 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 3 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 3 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
455 1 2 if (count == 0) XSRETURN(0);
456 2 0 if (items > 2) timeout = SvNV(ST(2));
457 1 1 if (!pubsub_int_poll_wait(sub, &value, timeout)) XSRETURN(0);
458 0 1 mXPUSHi((IV)value);
459 4 1 for (UV i = 1; i < count; i++) {
460 0 4 if (!pubsub_int_poll(sub, &value)) break;
461 0 4 mXPUSHi((IV)value);
468 18 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 18 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 18 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
478 2 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
480 0 2 RETVAL = (UV)sub->overflow_count;
488 2 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
490 0 2 RETVAL = (UV)__atomic_load_n(&sub->hdr->write_pos, __ATOMIC_RELAXED);
498 2 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
501 1 1 RETVAL = (sub->cursor < wp && wp - sub->cursor > sub->capacity);
1 0 RETVAL = (sub->cursor < wp && wp - sub->cursor > sub->capacity);
1 1 RETVAL = (sub->cursor < wp && wp - sub->cursor > sub->capacity);
509 6 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 6 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 6 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
511 2 4 if (items > 1) sub->cursor = (uint64_t)SvUV(ST(1));
512 0 6 RETVAL = (UV)sub->cursor;
520 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
528 2 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
531 0 2 sub->cursor = (wp > sub->capacity) ? wp - sub->capacity : 0;
538 3 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 3 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 3 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
542 105 3 while (pubsub_int_poll(sub, &value)) {
545 0 105 PUSHMARK(SP);
546 0 105 mXPUSHi((IV)value);
549 105 0 FREETMPS; LEAVE;
559 3 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 3 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 3 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
564 1 2 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
565 7 1 while (max_count-- > 0 && pubsub_int_poll(sub, &value))
5 2 while (max_count-- > 0 && pubsub_int_poll(sub, &value))
566 0 5 mXPUSHi((IV)value);
573 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
581 3 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 3 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 3 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
583 0 3 RETVAL = sub->notify_fd;
598 14 35 msg_size = (items > 3) ? (uint32_t)SvUV(ST(3)) : 0;
599 15 34 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
601 1 48 if (!h) croak("Data::PubSub::Shared::Str->new: %s", errbuf);
615 0 1 msg_size = (items > 3) ? (uint32_t)SvUV(ST(3)) : 0;
617 0 1 if (!h) croak("Data::PubSub::Shared::Str->new_memfd: %s", errbuf);
630 0 1 if (!h) croak("Data::PubSub::Shared::Str->new_from_fd: %s", errbuf);
639 1 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
641 0 1 RETVAL = h->backing_fd;
649 0 50 if (!SvROK(self)) return;
651 0 50 if (!h) return;
660 185 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 185 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 185 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
665 3 182 if (utf8)
670 2 183 if (r == -1) croak("publish: message too long (%u > %u)", (unsigned)len, h->msg_size);
679 5 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 5 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 5 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
683 4 1 if (count > 0) {
685 13 3 for (uint32_t i = 0; i < count; i++) {
690 0 13 if (utf8)
695 1 12 if (r == -1) {
712 1 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
717 0 1 if (utf8)
722 0 1 if (r == -1) croak("publish_notify: message too long (%u > %u)", (unsigned)len, h->msg_size);
729 11 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 11 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 11 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
732 0 11 if (!sub) croak("subscribe: out of memory");
742 24 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 24 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 24 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
745 0 24 if (!sub) croak("subscribe_all: out of memory");
755 1 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
757 0 1 RETVAL = h->capacity;
765 2 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 2 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 2 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
767 0 2 RETVAL = h->msg_size;
775 7 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 7 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 7 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
777 0 7 RETVAL = (UV)__atomic_load_n(&h->hdr->write_pos, __ATOMIC_RELAXED);
785 0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
787 0 0 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
795 2 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 2 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 2 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
819 2 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 2 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 2 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
827 2 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 2 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 2 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
829 0 2 if (pubsub_sync(h) != 0)
837 1 0 if (sv_isobject(self_or_class)) {
839 0 1 if (!h) croak("Attempted to use a destroyed object");
842 0 0 if (items < 2) croak("Usage: Data::PubSub::Shared::Str->unlink($path)");
845 0 1 if (!path) croak("cannot unlink anonymous or memfd pubsub");
846 0 1 if (unlink(path) != 0)
853 4 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 4 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 4 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
856 0 4 if (RETVAL < 0) croak("eventfd: %s", strerror(errno));
865 0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
873 0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
875 0 0 RETVAL = h->notify_fd;
883 2 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 2 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 2 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
886 2 0 RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef;
894 2 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 2 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 2 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
904 0 35 if (!SvROK(self)) return;
906 0 35 if (!sub) return;
908 35 0 if (sub->userdata) SvREFCNT_dec((SV *)sub->userdata);
915 37 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 37 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 37 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
921 34 3 if (r == 1) {
923 2 32 if (utf8) SvUTF8_on(RETVAL);
935 1 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
940 4 0 for (UV i = 0; i < count; i++) {
942 1 3 if (r != 1) break;
944 0 3 if (utf8) SvUTF8_on(sv);
945 0 3 mXPUSHs(sv);
952 54 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 54 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 54 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
958 54 0 if (items > 1) timeout = SvNV(ST(1));
960 53 1 if (r == 1) {
962 0 53 if (utf8) SvUTF8_on(RETVAL);
973 4 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 4 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 4 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
979 0 4 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
980 20 0 while (max_count-- > 0 && pubsub_str_poll(sub, &str, &len, &utf8) == 1) {
16 4 while (max_count-- > 0 && pubsub_str_poll(sub, &str, &len, &utf8) == 1) {
982 0 16 if (utf8) SvUTF8_on(sv);
983 0 16 mXPUSHs(sv);
991 2 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
997 1 1 if (count == 0) XSRETURN(0);
998 1 0 if (items > 2) timeout = SvNV(ST(2));
999 0 1 if (pubsub_str_poll_wait(sub, &str, &len, &utf8, timeout) != 1) XSRETURN(0);
1002 0 1 if (utf8) SvUTF8_on(sv);
1003 0 1 mXPUSHs(sv);
1005 2 1 for (UV i = 1; i < count; i++) {
1006 0 2 if (pubsub_str_poll(sub, &str, &len, &utf8) != 1) break;
1008 0 2 if (utf8) SvUTF8_on(sv);
1009 0 2 mXPUSHs(sv);
1016 8 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 8 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 8 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
1026 1 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
1028 0 1 RETVAL = (UV)sub->overflow_count;
1036 1 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
1038 0 1 RETVAL = (UV)__atomic_load_n(&sub->hdr->write_pos, __ATOMIC_RELAXED);
1046 2 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
1049 1 1 RETVAL = (sub->cursor < wp && wp - sub->cursor > sub->capacity);
1 0 RETVAL = (sub->cursor < wp && wp - sub->cursor > sub->capacity);
1 1 RETVAL = (sub->cursor < wp && wp - sub->cursor > sub->capacity);
1057 4 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 4 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 4 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
1059 2 2 if (items > 1) sub->cursor = (uint64_t)SvUV(ST(1));
1060 0 4 RETVAL = (UV)sub->cursor;
1068 1 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
1076 1 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
1079 0 1 sub->cursor = (wp > sub->capacity) ? wp - sub->capacity : 0;
1086 2 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
1092 4 2 while (pubsub_str_poll(sub, &str, &len, &utf8) == 1) {
1096 1 3 if (utf8) SvUTF8_on(sv);
1097 0 4 PUSHMARK(SP);
1098 0 4 mXPUSHs(sv);
1101 4 0 FREETMPS; LEAVE;
1111 1 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
1118 0 1 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
1119 2 0 while (max_count-- > 0 && pubsub_str_poll(sub, &str, &len, &utf8) == 1) {
1 1 while (max_count-- > 0 && pubsub_str_poll(sub, &str, &len, &utf8) == 1) {
1121 0 1 if (utf8) SvUTF8_on(sv);
1122 0 1 mXPUSHs(sv);
1130 0 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
1138 1 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
1140 0 1 RETVAL = sub->notify_fd;
1154 2 10 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
1156 1 11 if (!h) croak("Data::PubSub::Shared::Int32->new: %s", errbuf);
1170 0 1 if (!h) croak("Data::PubSub::Shared::Int32->new_memfd: %s", errbuf);
1183 0 1 if (!h) croak("Data::PubSub::Shared::Int32->new_from_fd: %s", errbuf);
1192 1 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1194 0 1 RETVAL = h->backing_fd;
1202 0 13 if (!SvROK(self)) return;
1204 0 13 if (!h) return;
1213 50 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 50 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 50 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1215 50 0 RETVAL = pubsub_int32_publish(h, (int32_t)value);
1223 1 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1226 0 1 if (count == 0) { RETVAL = 0; }
1228 0 1 if (count > 8192) croak("publish_multi: too many values (%u > 8192)", count);
1230 3 1 for (uint32_t i = 0; i < count; i++)
1242 0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1251 4 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 4 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 4 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1254 0 4 if (!sub) croak("subscribe: out of memory");
1264 7 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 7 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 7 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1267 0 7 if (!sub) croak("subscribe_all: out of memory");
1277 1 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1279 0 1 RETVAL = h->capacity;
1287 4 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 4 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 4 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1289 0 4 RETVAL = (UV)__atomic_load_n(&h->hdr->write_pos, __ATOMIC_RELAXED);
1297 0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1299 0 0 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
1307 2 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 2 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 2 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1329 1 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1337 1 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1339 0 1 if (pubsub_sync(h) != 0)
1347 0 0 if (sv_isobject(self_or_class)) {
1349 0 0 if (!h) croak("Attempted to use a destroyed object");
1352 0 0 if (items < 2) croak("Usage: Data::PubSub::Shared::Int32->unlink($path)");
1355 0 0 if (!path) croak("cannot unlink anonymous or memfd pubsub");
1356 0 0 if (unlink(path) != 0)
1363 0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1366 0 0 if (RETVAL < 0) croak("eventfd: %s", strerror(errno));
1375 0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1383 0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1385 0 0 RETVAL = h->notify_fd;
1393 0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1396 0 0 RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef;
1404 0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1414 0 11 if (!SvROK(self)) return;
1416 0 11 if (!sub) return;
1418 11 0 if (sub->userdata) SvREFCNT_dec((SV *)sub->userdata);
1425 9 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 9 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 9 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1429 8 1 if (r == 1)
1441 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1444 7 0 for (UV i = 0; i < count; i++) {
1446 1 6 if (r != 1) break;
1447 0 6 mXPUSHi((IV)value);
1454 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1458 1 0 if (items > 1) timeout = SvNV(ST(1));
1460 0 1 if (r == 1)
1471 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1475 0 1 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
1476 9 0 while (max_count-- > 0 && pubsub_int32_poll(sub, &value))
8 1 while (max_count-- > 0 && pubsub_int32_poll(sub, &value))
1477 0 8 mXPUSHi((IV)value);
1484 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1488 0 1 if (count == 0) XSRETURN(0);
1489 1 0 if (items > 2) timeout = SvNV(ST(2));
1490 0 1 if (!pubsub_int32_poll_wait(sub, &value, timeout)) XSRETURN(0);
1491 0 1 mXPUSHi((IV)value);
1492 2 1 for (UV i = 1; i < count; i++) {
1493 0 2 if (!pubsub_int32_poll(sub, &value)) break;
1494 0 2 mXPUSHi((IV)value);
1501 3 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 3 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 3 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1511 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1513 0 1 RETVAL = (UV)sub->overflow_count;
1521 0 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1523 0 0 RETVAL = (UV)__atomic_load_n(&sub->hdr->write_pos, __ATOMIC_RELAXED);
1531 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1534 1 0 RETVAL = (sub->cursor < wp && wp - sub->cursor > sub->capacity);
1 0 RETVAL = (sub->cursor < wp && wp - sub->cursor > sub->capacity);
1 0 RETVAL = (sub->cursor < wp && wp - sub->cursor > sub->capacity);
1542 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1544 0 1 if (items > 1) sub->cursor = (uint64_t)SvUV(ST(1));
1545 0 1 RETVAL = (UV)sub->cursor;
1553 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1561 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1564 0 1 sub->cursor = (wp > sub->capacity) ? wp - sub->capacity : 0;
1571 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1575 5 1 while (pubsub_int32_poll(sub, &value)) {
1578 0 5 PUSHMARK(SP);
1579 0 5 mXPUSHi((IV)value);
1582 5 0 FREETMPS; LEAVE;
1592 0 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1597 0 0 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
1598 0 0 while (max_count-- > 0 && pubsub_int32_poll(sub, &value))
0 0 while (max_count-- > 0 && pubsub_int32_poll(sub, &value))
1599 0 0 mXPUSHi((IV)value);
1606 0 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1614 0 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1616 0 0 RETVAL = sub->notify_fd;
1630 1 10 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
1632 1 10 if (!h) croak("Data::PubSub::Shared::Int16->new: %s", errbuf);
1646 0 1 if (!h) croak("Data::PubSub::Shared::Int16->new_memfd: %s", errbuf);
1659 0 1 if (!h) croak("Data::PubSub::Shared::Int16->new_from_fd: %s", errbuf);
1668 1 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1670 1 0 RETVAL = h->backing_fd;
1678 0 12 if (!SvROK(self)) return;
1680 0 12 if (!h) return;
1689 49 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 49 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 49 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1691 49 0 RETVAL = pubsub_int16_publish(h, (int16_t)value);
1699 1 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1702 0 1 if (count == 0) { RETVAL = 0; }
1704 0 1 if (count > 8192) croak("publish_multi: too many values (%u > 8192)", count);
1706 3 1 for (uint32_t i = 0; i < count; i++)
1718 0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1727 4 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 4 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 4 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1730 0 4 if (!sub) croak("subscribe: out of memory");
1740 7 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 7 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 7 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1743 0 7 if (!sub) croak("subscribe_all: out of memory");
1753 1 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1755 1 0 RETVAL = h->capacity;
1763 4 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 4 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 4 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1765 4 0 RETVAL = (UV)__atomic_load_n(&h->hdr->write_pos, __ATOMIC_RELAXED);
1773 0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1775 0 0 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
1783 2 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 2 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 2 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1805 1 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 1 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1813 0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1815 0 0 if (pubsub_sync(h) != 0)
1823 0 0 if (sv_isobject(self_or_class)) {
1825 0 0 if (!h) croak("Attempted to use a destroyed object");
1828 0 0 if (items < 2) croak("Usage: Data::PubSub::Shared::Int16->unlink($path)");
1831 0 0 if (!path) croak("cannot unlink anonymous or memfd pubsub");
1832 0 0 if (unlink(path) != 0)
1839 0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1842 0 0 if (RETVAL < 0) croak("eventfd: %s", strerror(errno));
1851 0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1859 0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1861 0 0 RETVAL = h->notify_fd;
1869 0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1872 0 0 RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef;
1880 0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1890 0 11 if (!SvROK(self)) return;
1892 0 11 if (!sub) return;
1894 11 0 if (sub->userdata) SvREFCNT_dec((SV *)sub->userdata);
1901 9 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 9 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 9 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
1905 8 1 if (r == 1)
1917 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
1920 7 0 for (UV i = 0; i < count; i++) {
1922 1 6 if (r != 1) break;
1923 0 6 mXPUSHi((IV)value);
1930 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
1934 1 0 if (items > 1) timeout = SvNV(ST(1));
1936 0 1 if (r == 1)
1947 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
1951 0 1 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
1952 9 0 while (max_count-- > 0 && pubsub_int16_poll(sub, &value))
8 1 while (max_count-- > 0 && pubsub_int16_poll(sub, &value))
1953 0 8 mXPUSHi((IV)value);
1960 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
1964 0 1 if (count == 0) XSRETURN(0);
1965 1 0 if (items > 2) timeout = SvNV(ST(2));
1966 0 1 if (!pubsub_int16_poll_wait(sub, &value, timeout)) XSRETURN(0);
1967 0 1 mXPUSHi((IV)value);
1968 2 1 for (UV i = 1; i < count; i++) {
1969 0 2 if (!pubsub_int16_poll(sub, &value)) break;
1970 0 2 mXPUSHi((IV)value);
1977 3 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 3 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 3 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
1987 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
1989 1 0 RETVAL = (UV)sub->overflow_count;
1997 0 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
1999 0 0 RETVAL = (UV)__atomic_load_n(&sub->hdr->write_pos, __ATOMIC_RELAXED);
2007 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
2010 1 0 RETVAL = (sub->cursor < wp && wp - sub->cursor > sub->capacity);
1 0 RETVAL = (sub->cursor < wp && wp - sub->cursor > sub->capacity);
1 0 RETVAL = (sub->cursor < wp && wp - sub->cursor > sub->capacity);
2018 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
2020 0 1 if (items > 1) sub->cursor = (uint64_t)SvUV(ST(1));
2021 1 0 RETVAL = (UV)sub->cursor;
2029 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
2037 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
2040 0 1 sub->cursor = (wp > sub->capacity) ? wp - sub->capacity : 0;
2047 1 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 1 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
2051 5 1 while (pubsub_int16_poll(sub, &value)) {
2054 0 5 PUSHMARK(SP);
2055 0 5 mXPUSHi((IV)value);
2058 5 0 FREETMPS; LEAVE;
2068 0 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
2073 0 0 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
2074 0 0 while (max_count-- > 0 && pubsub_int16_poll(sub, &value))
0 0 while (max_count-- > 0 && pubsub_int16_poll(sub, &value))
2075 0 0 mXPUSHi((IV)value);
2082 0 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
2090 0 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
2092 0 0 RETVAL = sub->notify_fd;