Branch Coverage

Shared.xs
Criterion Covered Total %
branch 606 1324 45.7


line true false branch
116 33 33 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
118 1 65 if (!h) croak("Data::PubSub::Shared::Int->new: %s", errbuf);
135 0 1 if (!h) croak("Data::PubSub::Shared::Int->new_memfd: %s", errbuf);
151 0 1 if (!h) croak("Data::PubSub::Shared::Int->new_from_fd: %s", errbuf);
163 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);
165 0 1 RETVAL = h->backing_fd;
173 67 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 67 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 67 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
183 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);
185 468 0 RETVAL = pubsub_int_publish(h, (int64_t)value);
193 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);
196 1 4 if (count == 0) { RETVAL = 0; }
198 0 4 if (count > 8192) croak("publish_multi: too many values (%u > 8192)", count);
200 208 4 for (uint32_t i = 0; i < count; i++)
212 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);
221 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);
224 0 21 if (!sub) croak("subscribe: out of memory");
237 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);
240 0 26 if (!sub) croak("subscribe_all: out of memory");
253 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);
255 0 1 RETVAL = h->capacity;
263 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);
265 0 13 RETVAL = (UV)__atomic_load_n(&h->hdr->write_pos, __ATOMIC_RELAXED);
273 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);
275 1 1 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
283 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);
305 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);
313 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);
315 0 4 if (pubsub_sync(h) != 0)
323 1 0 if (sv_isobject(self_or_class)) {
325 0 1 if (!h) croak("Attempted to use a destroyed object");
328 0 0 if (items < 2) croak("Usage: Data::PubSub::Shared::Int->unlink($path)");
331 0 1 if (!path) croak("cannot unlink anonymous or memfd pubsub");
332 0 1 if (unlink(path) != 0)
339 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);
342 0 9 if (RETVAL < 0) croak("eventfd: %s", strerror(errno));
351 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);
359 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);
361 0 1 RETVAL = h->notify_fd;
369 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);
377 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);
387 47 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 47 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 47 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
390 47 0 if (sub->userdata) SvREFCNT_dec((SV *)sub->userdata);
397 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);
401 31 4 if (r == 1)
413 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);
416 10 2 for (UV i = 0; i < count; i++) {
418 0 10 if (r != 1) break;
419 0 10 mXPUSHi((IV)value);
426 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);
430 9 0 if (items > 1) timeout = SvNV(ST(1));
432 8 1 if (r == 1)
443 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);
447 1 7 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
448 1027 1 while (max_count-- > 0 && pubsub_int_poll(sub, &value))
1020 7 while (max_count-- > 0 && pubsub_int_poll(sub, &value))
449 0 1020 mXPUSHi((IV)value);
456 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);
460 1 2 if (count == 0) XSRETURN(0);
461 2 0 if (items > 2) timeout = SvNV(ST(2));
462 1 1 if (!pubsub_int_poll_wait(sub, &value, timeout)) XSRETURN(0);
463 0 1 mXPUSHi((IV)value);
464 4 1 for (UV i = 1; i < count; i++) {
465 0 4 if (!pubsub_int_poll(sub, &value)) break;
466 0 4 mXPUSHi((IV)value);
473 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);
483 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);
485 0 2 RETVAL = (UV)sub->overflow_count;
493 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);
495 0 2 RETVAL = (UV)__atomic_load_n(&sub->hdr->write_pos, __ATOMIC_RELAXED);
503 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);
506 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);
514 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);
516 2 4 if (items > 1) sub->cursor = (uint64_t)SvUV(ST(1));
517 0 6 RETVAL = (UV)sub->cursor;
525 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);
533 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);
536 0 2 sub->cursor = (wp > sub->capacity) ? wp - sub->capacity : 0;
543 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);
547 105 3 while (pubsub_int_poll(sub, &value)) {
549 0 105 PUSHMARK(SP);
550 0 105 mXPUSHi((IV)value);
562 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);
567 1 2 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
568 7 1 while (max_count-- > 0 && pubsub_int_poll(sub, &value))
5 2 while (max_count-- > 0 && pubsub_int_poll(sub, &value))
569 0 5 mXPUSHi((IV)value);
576 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);
584 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);
586 0 3 RETVAL = sub->notify_fd;
601 14 35 msg_size = (items > 3) ? (uint32_t)SvUV(ST(3)) : 0;
602 15 34 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
604 1 48 if (!h) croak("Data::PubSub::Shared::Str->new: %s", errbuf);
621 0 1 msg_size = (items > 3) ? (uint32_t)SvUV(ST(3)) : 0;
623 0 1 if (!h) croak("Data::PubSub::Shared::Str->new_memfd: %s", errbuf);
639 0 1 if (!h) croak("Data::PubSub::Shared::Str->new_from_fd: %s", errbuf);
651 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);
653 0 1 RETVAL = h->backing_fd;
661 50 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 50 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 50 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
671 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);
676 3 182 if (utf8)
681 2 183 if (r == -1) croak("publish: message too long (%u > %u)", (unsigned)len, h->msg_size);
690 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);
694 4 1 if (count > 0) {
696 13 3 for (uint32_t i = 0; i < count; i++) {
701 0 13 if (utf8)
706 1 12 if (r == -1) {
723 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);
728 0 1 if (utf8)
733 0 1 if (r == -1) croak("publish_notify: message too long (%u > %u)", (unsigned)len, h->msg_size);
740 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);
743 0 11 if (!sub) croak("subscribe: out of memory");
756 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);
759 0 24 if (!sub) croak("subscribe_all: out of memory");
772 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);
774 0 1 RETVAL = h->capacity;
782 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);
784 0 2 RETVAL = h->msg_size;
792 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);
794 0 7 RETVAL = (UV)__atomic_load_n(&h->hdr->write_pos, __ATOMIC_RELAXED);
802 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);
804 0 0 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
812 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);
836 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);
844 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);
846 0 2 if (pubsub_sync(h) != 0)
854 1 0 if (sv_isobject(self_or_class)) {
856 0 1 if (!h) croak("Attempted to use a destroyed object");
859 0 0 if (items < 2) croak("Usage: Data::PubSub::Shared::Str->unlink($path)");
862 0 1 if (!path) croak("cannot unlink anonymous or memfd pubsub");
863 0 1 if (unlink(path) != 0)
870 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);
873 0 4 if (RETVAL < 0) croak("eventfd: %s", strerror(errno));
882 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);
890 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);
892 0 0 RETVAL = h->notify_fd;
900 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);
908 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);
918 35 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 35 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 35 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
921 35 0 if (sub->userdata) SvREFCNT_dec((SV *)sub->userdata);
928 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);
934 34 3 if (r == 1) {
936 2 32 if (utf8) SvUTF8_on(RETVAL);
948 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);
953 4 0 for (UV i = 0; i < count; i++) {
955 1 3 if (r != 1) break;
957 0 3 if (utf8) SvUTF8_on(sv);
958 0 3 mXPUSHs(sv);
965 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);
971 54 0 if (items > 1) timeout = SvNV(ST(1));
973 53 1 if (r == 1) {
975 0 53 if (utf8) SvUTF8_on(RETVAL);
986 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);
992 0 4 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
993 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) {
995 0 16 if (utf8) SvUTF8_on(sv);
996 0 16 mXPUSHs(sv);
1004 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);
1010 1 1 if (count == 0) XSRETURN(0);
1011 1 0 if (items > 2) timeout = SvNV(ST(2));
1012 0 1 if (pubsub_str_poll_wait(sub, &str, &len, &utf8, timeout) != 1) XSRETURN(0);
1015 0 1 if (utf8) SvUTF8_on(sv);
1016 0 1 mXPUSHs(sv);
1018 2 1 for (UV i = 1; i < count; i++) {
1019 0 2 if (pubsub_str_poll(sub, &str, &len, &utf8) != 1) break;
1021 0 2 if (utf8) SvUTF8_on(sv);
1022 0 2 mXPUSHs(sv);
1029 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);
1039 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);
1041 0 1 RETVAL = (UV)sub->overflow_count;
1049 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);
1051 0 1 RETVAL = (UV)__atomic_load_n(&sub->hdr->write_pos, __ATOMIC_RELAXED);
1059 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);
1062 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);
1070 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);
1072 2 2 if (items > 1) sub->cursor = (uint64_t)SvUV(ST(1));
1073 0 4 RETVAL = (UV)sub->cursor;
1081 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);
1089 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);
1092 0 1 sub->cursor = (wp > sub->capacity) ? wp - sub->capacity : 0;
1099 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);
1105 4 2 while (pubsub_str_poll(sub, &str, &len, &utf8) == 1) {
1108 1 3 if (utf8) SvUTF8_on(sv);
1109 0 4 PUSHMARK(SP);
1110 0 4 mXPUSHs(sv);
1122 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);
1129 0 1 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
1130 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) {
1132 0 1 if (utf8) SvUTF8_on(sv);
1133 0 1 mXPUSHs(sv);
1141 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);
1149 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);
1151 0 1 RETVAL = sub->notify_fd;
1165 2 10 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
1167 1 11 if (!h) croak("Data::PubSub::Shared::Int32->new: %s", errbuf);
1184 0 1 if (!h) croak("Data::PubSub::Shared::Int32->new_memfd: %s", errbuf);
1200 0 1 if (!h) croak("Data::PubSub::Shared::Int32->new_from_fd: %s", errbuf);
1212 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);
1214 0 1 RETVAL = h->backing_fd;
1222 13 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 13 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 13 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1232 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);
1234 50 0 RETVAL = pubsub_int32_publish(h, (int32_t)value);
1242 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);
1245 0 1 if (count == 0) { RETVAL = 0; }
1247 0 1 if (count > 8192) croak("publish_multi: too many values (%u > 8192)", count);
1249 3 1 for (uint32_t i = 0; i < count; i++)
1261 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);
1270 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);
1273 0 4 if (!sub) croak("subscribe: out of memory");
1286 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);
1289 0 7 if (!sub) croak("subscribe_all: out of memory");
1302 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);
1304 0 1 RETVAL = h->capacity;
1312 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);
1314 0 4 RETVAL = (UV)__atomic_load_n(&h->hdr->write_pos, __ATOMIC_RELAXED);
1322 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);
1324 0 0 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
1332 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);
1354 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);
1362 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);
1364 0 1 if (pubsub_sync(h) != 0)
1372 0 0 if (sv_isobject(self_or_class)) {
1374 0 0 if (!h) croak("Attempted to use a destroyed object");
1377 0 0 if (items < 2) croak("Usage: Data::PubSub::Shared::Int32->unlink($path)");
1380 0 0 if (!path) croak("cannot unlink anonymous or memfd pubsub");
1381 0 0 if (unlink(path) != 0)
1388 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);
1391 0 0 if (RETVAL < 0) croak("eventfd: %s", strerror(errno));
1400 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);
1408 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);
1410 0 0 RETVAL = h->notify_fd;
1418 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);
1426 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);
1436 11 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 11 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 11 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1439 11 0 if (sub->userdata) SvREFCNT_dec((SV *)sub->userdata);
1446 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);
1450 8 1 if (r == 1)
1462 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);
1465 7 0 for (UV i = 0; i < count; i++) {
1467 1 6 if (r != 1) break;
1468 0 6 mXPUSHi((IV)value);
1475 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);
1479 1 0 if (items > 1) timeout = SvNV(ST(1));
1481 0 1 if (r == 1)
1492 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);
1496 0 1 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
1497 9 0 while (max_count-- > 0 && pubsub_int32_poll(sub, &value))
8 1 while (max_count-- > 0 && pubsub_int32_poll(sub, &value))
1498 0 8 mXPUSHi((IV)value);
1505 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);
1509 0 1 if (count == 0) XSRETURN(0);
1510 1 0 if (items > 2) timeout = SvNV(ST(2));
1511 0 1 if (!pubsub_int32_poll_wait(sub, &value, timeout)) XSRETURN(0);
1512 0 1 mXPUSHi((IV)value);
1513 2 1 for (UV i = 1; i < count; i++) {
1514 0 2 if (!pubsub_int32_poll(sub, &value)) break;
1515 0 2 mXPUSHi((IV)value);
1522 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);
1532 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 0 1 RETVAL = (UV)sub->overflow_count;
1542 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);
1544 0 0 RETVAL = (UV)__atomic_load_n(&sub->hdr->write_pos, __ATOMIC_RELAXED);
1552 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);
1555 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);
1563 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);
1565 0 1 if (items > 1) sub->cursor = (uint64_t)SvUV(ST(1));
1566 0 1 RETVAL = (UV)sub->cursor;
1574 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);
1582 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);
1585 0 1 sub->cursor = (wp > sub->capacity) ? wp - sub->capacity : 0;
1592 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);
1596 5 1 while (pubsub_int32_poll(sub, &value)) {
1598 0 5 PUSHMARK(SP);
1599 0 5 mXPUSHi((IV)value);
1611 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 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
1617 0 0 while (max_count-- > 0 && pubsub_int32_poll(sub, &value))
0 0 while (max_count-- > 0 && pubsub_int32_poll(sub, &value))
1618 0 0 mXPUSHi((IV)value);
1625 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);
1633 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);
1635 0 0 RETVAL = sub->notify_fd;
1649 1 10 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
1651 1 10 if (!h) croak("Data::PubSub::Shared::Int16->new: %s", errbuf);
1668 0 1 if (!h) croak("Data::PubSub::Shared::Int16->new_memfd: %s", errbuf);
1684 0 1 if (!h) croak("Data::PubSub::Shared::Int16->new_from_fd: %s", errbuf);
1696 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);
1698 1 0 RETVAL = h->backing_fd;
1706 12 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 12 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 12 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1716 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);
1718 49 0 RETVAL = pubsub_int16_publish(h, (int16_t)value);
1726 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);
1729 0 1 if (count == 0) { RETVAL = 0; }
1731 0 1 if (count > 8192) croak("publish_multi: too many values (%u > 8192)", count);
1733 3 1 for (uint32_t i = 0; i < count; i++)
1745 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);
1754 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);
1757 0 4 if (!sub) croak("subscribe: out of memory");
1770 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);
1773 0 7 if (!sub) croak("subscribe_all: out of memory");
1786 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);
1788 1 0 RETVAL = h->capacity;
1796 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);
1798 4 0 RETVAL = (UV)__atomic_load_n(&h->hdr->write_pos, __ATOMIC_RELAXED);
1806 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);
1808 0 0 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
1816 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);
1838 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);
1846 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);
1848 0 0 if (pubsub_sync(h) != 0)
1856 0 0 if (sv_isobject(self_or_class)) {
1858 0 0 if (!h) croak("Attempted to use a destroyed object");
1861 0 0 if (items < 2) croak("Usage: Data::PubSub::Shared::Int16->unlink($path)");
1864 0 0 if (!path) croak("cannot unlink anonymous or memfd pubsub");
1865 0 0 if (unlink(path) != 0)
1872 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);
1875 0 0 if (RETVAL < 0) croak("eventfd: %s", strerror(errno));
1884 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);
1892 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);
1894 0 0 RETVAL = h->notify_fd;
1902 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);
1910 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);
1920 11 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 11 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 11 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
1923 11 0 if (sub->userdata) SvREFCNT_dec((SV *)sub->userdata);
1930 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);
1934 8 1 if (r == 1)
1946 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);
1949 7 0 for (UV i = 0; i < count; i++) {
1951 1 6 if (r != 1) break;
1952 0 6 mXPUSHi((IV)value);
1959 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);
1963 1 0 if (items > 1) timeout = SvNV(ST(1));
1965 0 1 if (r == 1)
1976 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);
1980 0 1 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
1981 9 0 while (max_count-- > 0 && pubsub_int16_poll(sub, &value))
8 1 while (max_count-- > 0 && pubsub_int16_poll(sub, &value))
1982 0 8 mXPUSHi((IV)value);
1989 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);
1993 0 1 if (count == 0) XSRETURN(0);
1994 1 0 if (items > 2) timeout = SvNV(ST(2));
1995 0 1 if (!pubsub_int16_poll_wait(sub, &value, timeout)) XSRETURN(0);
1996 0 1 mXPUSHi((IV)value);
1997 2 1 for (UV i = 1; i < count; i++) {
1998 0 2 if (!pubsub_int16_poll(sub, &value)) break;
1999 0 2 mXPUSHi((IV)value);
2006 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);
2016 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);
2018 1 0 RETVAL = (UV)sub->overflow_count;
2026 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);
2028 0 0 RETVAL = (UV)__atomic_load_n(&sub->hdr->write_pos, __ATOMIC_RELAXED);
2036 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);
2039 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);
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);
2049 0 1 if (items > 1) sub->cursor = (uint64_t)SvUV(ST(1));
2050 1 0 RETVAL = (UV)sub->cursor;
2058 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);
2066 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);
2069 0 1 sub->cursor = (wp > sub->capacity) ? wp - sub->capacity : 0;
2076 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);
2080 5 1 while (pubsub_int16_poll(sub, &value)) {
2082 0 5 PUSHMARK(SP);
2083 0 5 mXPUSHi((IV)value);
2095 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);
2100 0 0 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
2101 0 0 while (max_count-- > 0 && pubsub_int16_poll(sub, &value))
0 0 while (max_count-- > 0 && pubsub_int16_poll(sub, &value))
2102 0 0 mXPUSHi((IV)value);
2109 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);
2117 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);
2119 0 0 RETVAL = sub->notify_fd;