Branch Coverage

Shared.xs
Criterion Covered Total %
branch 606 1324 45.7


line true false branch
122 33 31 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
124 1 63 if (!h) croak("Data::PubSub::Shared::Int->new: %s", errbuf);
141 0 1 if (!h) croak("Data::PubSub::Shared::Int->new_memfd: %s", errbuf);
157 0 1 if (!h) croak("Data::PubSub::Shared::Int->new_from_fd: %s", errbuf);
169 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);
171 0 1 RETVAL = h->backing_fd;
179 65 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 65 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 65 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
189 465 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 465 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 465 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
191 465 0 RETVAL = pubsub_int_publish(h, (int64_t)value);
199 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);
202 1 4 if (count == 0) { RETVAL = 0; }
204 0 4 if (count > 8192) croak("publish_multi: too many values (%u > 8192)", count);
206 208 4 for (uint32_t i = 0; i < count; i++)
218 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);
227 19 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 19 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 19 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
230 0 19 if (!sub) croak("subscribe: out of memory");
243 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);
246 0 26 if (!sub) croak("subscribe_all: out of memory");
259 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);
261 0 1 RETVAL = h->capacity;
269 12 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 12 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
0 12 EXTRACT_HANDLE("Data::PubSub::Shared::Int", self);
271 0 12 RETVAL = (UV)__atomic_load_n(&h->hdr->write_pos, __ATOMIC_RELAXED);
279 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);
281 1 1 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
289 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);
311 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);
319 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);
321 0 4 if (pubsub_sync(h) != 0)
329 1 0 if (sv_isobject(self_or_class)) {
331 0 1 if (!h) croak("Attempted to use a destroyed object");
334 0 0 if (items < 2) croak("Usage: Data::PubSub::Shared::Int->unlink($path)");
337 0 1 if (!path) croak("cannot unlink anonymous or memfd pubsub");
338 0 1 if (unlink(path) != 0)
345 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);
348 0 9 if (RETVAL < 0) croak("eventfd: %s", strerror(errno));
357 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);
365 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);
367 0 1 RETVAL = h->notify_fd;
375 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);
383 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);
393 45 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 45 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 45 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
396 45 0 if (sub->userdata) SvREFCNT_dec((SV *)sub->userdata);
403 31 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 31 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 31 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
407 28 3 if (r == 1)
419 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);
422 10 2 for (UV i = 0; i < count; i++) {
424 0 10 if (r != 1) break;
425 0 10 mXPUSHi((IV)value);
432 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);
436 9 0 if (items > 1) timeout = SvNV(ST(1));
438 8 1 if (r == 1)
449 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);
453 1 7 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
454 1027 1 while (max_count-- > 0 && pubsub_int_poll(sub, &value))
1020 7 while (max_count-- > 0 && pubsub_int_poll(sub, &value))
455 0 1020 mXPUSHi((IV)value);
462 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);
466 1 2 if (count == 0) XSRETURN(0);
467 2 0 if (items > 2) timeout = SvNV(ST(2));
468 1 1 if (!pubsub_int_poll_wait(sub, &value, timeout)) XSRETURN(0);
469 0 1 mXPUSHi((IV)value);
470 4 1 for (UV i = 1; i < count; i++) {
471 0 4 if (!pubsub_int_poll(sub, &value)) break;
472 0 4 mXPUSHi((IV)value);
479 16 0 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 16 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
0 16 EXTRACT_SUB("Data::PubSub::Shared::Int::Sub", self);
489 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);
491 0 2 RETVAL = (UV)sub->overflow_count;
499 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 0 2 RETVAL = (UV)__atomic_load_n(&sub->hdr->write_pos, __ATOMIC_RELAXED);
509 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);
512 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);
520 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);
522 2 4 if (items > 1) sub->cursor = (uint64_t)SvUV(ST(1));
523 0 6 RETVAL = (UV)sub->cursor;
531 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);
539 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);
542 0 2 sub->cursor = (wp > sub->capacity) ? wp - sub->capacity : 0;
549 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);
553 105 3 while (pubsub_int_poll(sub, &value)) {
555 0 105 PUSHMARK(SP);
556 0 105 mXPUSHi((IV)value);
568 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);
573 1 2 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
574 7 1 while (max_count-- > 0 && pubsub_int_poll(sub, &value))
5 2 while (max_count-- > 0 && pubsub_int_poll(sub, &value))
575 0 5 mXPUSHi((IV)value);
582 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);
590 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);
592 0 3 RETVAL = sub->notify_fd;
607 14 33 msg_size = (items > 3) ? (uint32_t)SvUV(ST(3)) : 0;
608 15 32 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
610 1 46 if (!h) croak("Data::PubSub::Shared::Str->new: %s", errbuf);
627 0 1 msg_size = (items > 3) ? (uint32_t)SvUV(ST(3)) : 0;
629 0 1 if (!h) croak("Data::PubSub::Shared::Str->new_memfd: %s", errbuf);
645 0 1 if (!h) croak("Data::PubSub::Shared::Str->new_from_fd: %s", errbuf);
657 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);
659 0 1 RETVAL = h->backing_fd;
667 48 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 48 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 48 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
677 182 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 182 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 182 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
682 2 180 if (utf8)
687 2 180 if (r == -1) croak("publish: message too long (%u > %u)", (unsigned)len, h->msg_size);
696 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);
700 4 1 if (count > 0) {
702 13 3 for (uint32_t i = 0; i < count; i++) {
707 0 13 if (utf8)
712 1 12 if (r == -1) {
729 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);
734 0 1 if (utf8)
739 0 1 if (r == -1) croak("publish_notify: message too long (%u > %u)", (unsigned)len, h->msg_size);
746 9 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 9 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 9 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
749 0 9 if (!sub) croak("subscribe: out of memory");
762 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);
765 0 24 if (!sub) croak("subscribe_all: out of memory");
778 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);
780 0 1 RETVAL = h->capacity;
788 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);
790 0 2 RETVAL = h->msg_size;
798 6 0 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 6 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
0 6 EXTRACT_HANDLE("Data::PubSub::Shared::Str", self);
800 0 6 RETVAL = (UV)__atomic_load_n(&h->hdr->write_pos, __ATOMIC_RELAXED);
808 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);
810 0 0 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
818 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);
842 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);
850 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);
852 0 2 if (pubsub_sync(h) != 0)
860 1 0 if (sv_isobject(self_or_class)) {
862 0 1 if (!h) croak("Attempted to use a destroyed object");
865 0 0 if (items < 2) croak("Usage: Data::PubSub::Shared::Str->unlink($path)");
868 0 1 if (!path) croak("cannot unlink anonymous or memfd pubsub");
869 0 1 if (unlink(path) != 0)
876 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);
879 0 4 if (RETVAL < 0) croak("eventfd: %s", strerror(errno));
888 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);
896 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);
898 0 0 RETVAL = h->notify_fd;
906 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);
914 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);
924 33 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 33 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 33 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
927 33 0 if (sub->userdata) SvREFCNT_dec((SV *)sub->userdata);
934 33 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 33 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 33 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
940 31 2 if (r == 1) {
942 1 30 if (utf8) SvUTF8_on(RETVAL);
954 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);
959 4 0 for (UV i = 0; i < count; i++) {
961 1 3 if (r != 1) break;
963 0 3 if (utf8) SvUTF8_on(sv);
964 0 3 mXPUSHs(sv);
971 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);
977 54 0 if (items > 1) timeout = SvNV(ST(1));
979 53 1 if (r == 1) {
981 0 53 if (utf8) SvUTF8_on(RETVAL);
992 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);
998 0 4 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
999 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) {
1001 0 16 if (utf8) SvUTF8_on(sv);
1002 0 16 mXPUSHs(sv);
1010 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);
1016 1 1 if (count == 0) XSRETURN(0);
1017 1 0 if (items > 2) timeout = SvNV(ST(2));
1018 0 1 if (pubsub_str_poll_wait(sub, &str, &len, &utf8, timeout) != 1) XSRETURN(0);
1021 0 1 if (utf8) SvUTF8_on(sv);
1022 0 1 mXPUSHs(sv);
1024 2 1 for (UV i = 1; i < count; i++) {
1025 0 2 if (pubsub_str_poll(sub, &str, &len, &utf8) != 1) break;
1027 0 2 if (utf8) SvUTF8_on(sv);
1028 0 2 mXPUSHs(sv);
1035 6 0 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 6 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
0 6 EXTRACT_SUB("Data::PubSub::Shared::Str::Sub", self);
1045 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);
1047 0 1 RETVAL = (UV)sub->overflow_count;
1055 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);
1057 0 1 RETVAL = (UV)__atomic_load_n(&sub->hdr->write_pos, __ATOMIC_RELAXED);
1065 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);
1068 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);
1076 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);
1078 2 2 if (items > 1) sub->cursor = (uint64_t)SvUV(ST(1));
1079 0 4 RETVAL = (UV)sub->cursor;
1087 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);
1095 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);
1098 0 1 sub->cursor = (wp > sub->capacity) ? wp - sub->capacity : 0;
1105 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);
1111 4 2 while (pubsub_str_poll(sub, &str, &len, &utf8) == 1) {
1114 1 3 if (utf8) SvUTF8_on(sv);
1115 0 4 PUSHMARK(SP);
1116 0 4 mXPUSHs(sv);
1128 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);
1135 0 1 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
1136 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) {
1138 0 1 if (utf8) SvUTF8_on(sv);
1139 0 1 mXPUSHs(sv);
1147 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);
1155 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);
1157 0 1 RETVAL = sub->notify_fd;
1171 2 9 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
1173 1 10 if (!h) croak("Data::PubSub::Shared::Int32->new: %s", errbuf);
1190 0 1 if (!h) croak("Data::PubSub::Shared::Int32->new_memfd: %s", errbuf);
1206 0 1 if (!h) croak("Data::PubSub::Shared::Int32->new_from_fd: %s", errbuf);
1218 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);
1220 0 1 RETVAL = h->backing_fd;
1228 12 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 12 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 12 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1238 49 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 49 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 49 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1240 49 0 RETVAL = pubsub_int32_publish(h, (int32_t)value);
1248 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);
1251 0 1 if (count == 0) { RETVAL = 0; }
1253 0 1 if (count > 8192) croak("publish_multi: too many values (%u > 8192)", count);
1255 3 1 for (uint32_t i = 0; i < count; i++)
1267 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);
1276 3 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 3 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
0 3 EXTRACT_HANDLE("Data::PubSub::Shared::Int32", self);
1279 0 3 if (!sub) croak("subscribe: out of memory");
1292 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);
1295 0 7 if (!sub) croak("subscribe_all: out of memory");
1308 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);
1310 0 1 RETVAL = h->capacity;
1318 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);
1320 0 4 RETVAL = (UV)__atomic_load_n(&h->hdr->write_pos, __ATOMIC_RELAXED);
1328 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);
1330 0 0 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
1338 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);
1360 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);
1368 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);
1370 0 1 if (pubsub_sync(h) != 0)
1378 0 0 if (sv_isobject(self_or_class)) {
1380 0 0 if (!h) croak("Attempted to use a destroyed object");
1383 0 0 if (items < 2) croak("Usage: Data::PubSub::Shared::Int32->unlink($path)");
1386 0 0 if (!path) croak("cannot unlink anonymous or memfd pubsub");
1387 0 0 if (unlink(path) != 0)
1394 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);
1397 0 0 if (RETVAL < 0) croak("eventfd: %s", strerror(errno));
1406 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 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);
1416 0 0 RETVAL = h->notify_fd;
1424 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);
1432 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);
1442 10 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 10 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 10 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1445 10 0 if (sub->userdata) SvREFCNT_dec((SV *)sub->userdata);
1452 8 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 8 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 8 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1456 7 1 if (r == 1)
1468 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);
1471 7 0 for (UV i = 0; i < count; i++) {
1473 1 6 if (r != 1) break;
1474 0 6 mXPUSHi((IV)value);
1481 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);
1485 1 0 if (items > 1) timeout = SvNV(ST(1));
1487 0 1 if (r == 1)
1498 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);
1502 0 1 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
1503 9 0 while (max_count-- > 0 && pubsub_int32_poll(sub, &value))
8 1 while (max_count-- > 0 && pubsub_int32_poll(sub, &value))
1504 0 8 mXPUSHi((IV)value);
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);
1515 0 1 if (count == 0) XSRETURN(0);
1516 1 0 if (items > 2) timeout = SvNV(ST(2));
1517 0 1 if (!pubsub_int32_poll_wait(sub, &value, timeout)) XSRETURN(0);
1518 0 1 mXPUSHi((IV)value);
1519 2 1 for (UV i = 1; i < count; i++) {
1520 0 2 if (!pubsub_int32_poll(sub, &value)) break;
1521 0 2 mXPUSHi((IV)value);
1528 2 0 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Int32::Sub", self);
1538 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);
1540 0 1 RETVAL = (UV)sub->overflow_count;
1548 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);
1550 0 0 RETVAL = (UV)__atomic_load_n(&sub->hdr->write_pos, __ATOMIC_RELAXED);
1558 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 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);
1569 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);
1571 0 1 if (items > 1) sub->cursor = (uint64_t)SvUV(ST(1));
1572 0 1 RETVAL = (UV)sub->cursor;
1580 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);
1588 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);
1591 0 1 sub->cursor = (wp > sub->capacity) ? wp - sub->capacity : 0;
1598 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);
1602 5 1 while (pubsub_int32_poll(sub, &value)) {
1604 0 5 PUSHMARK(SP);
1605 0 5 mXPUSHi((IV)value);
1617 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);
1622 0 0 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
1623 0 0 while (max_count-- > 0 && pubsub_int32_poll(sub, &value))
0 0 while (max_count-- > 0 && pubsub_int32_poll(sub, &value))
1624 0 0 mXPUSHi((IV)value);
1631 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);
1639 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);
1641 0 0 RETVAL = sub->notify_fd;
1655 1 9 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
1657 1 9 if (!h) croak("Data::PubSub::Shared::Int16->new: %s", errbuf);
1674 0 1 if (!h) croak("Data::PubSub::Shared::Int16->new_memfd: %s", errbuf);
1690 0 1 if (!h) croak("Data::PubSub::Shared::Int16->new_from_fd: %s", errbuf);
1702 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);
1704 1 0 RETVAL = h->backing_fd;
1712 11 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 11 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 11 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1722 48 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 48 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 48 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1724 48 0 RETVAL = pubsub_int16_publish(h, (int16_t)value);
1732 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);
1735 0 1 if (count == 0) { RETVAL = 0; }
1737 0 1 if (count > 8192) croak("publish_multi: too many values (%u > 8192)", count);
1739 3 1 for (uint32_t i = 0; i < count; i++)
1751 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);
1760 3 0 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 3 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
0 3 EXTRACT_HANDLE("Data::PubSub::Shared::Int16", self);
1763 0 3 if (!sub) croak("subscribe: out of memory");
1776 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);
1779 0 7 if (!sub) croak("subscribe_all: out of memory");
1792 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);
1794 1 0 RETVAL = h->capacity;
1802 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);
1804 4 0 RETVAL = (UV)__atomic_load_n(&h->hdr->write_pos, __ATOMIC_RELAXED);
1812 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);
1814 0 0 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
1822 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);
1844 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);
1852 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);
1854 0 0 if (pubsub_sync(h) != 0)
1862 0 0 if (sv_isobject(self_or_class)) {
1864 0 0 if (!h) croak("Attempted to use a destroyed object");
1867 0 0 if (items < 2) croak("Usage: Data::PubSub::Shared::Int16->unlink($path)");
1870 0 0 if (!path) croak("cannot unlink anonymous or memfd pubsub");
1871 0 0 if (unlink(path) != 0)
1878 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);
1881 0 0 if (RETVAL < 0) croak("eventfd: %s", strerror(errno));
1890 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);
1898 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);
1900 0 0 RETVAL = h->notify_fd;
1908 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);
1916 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);
1926 10 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 10 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 10 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
1929 10 0 if (sub->userdata) SvREFCNT_dec((SV *)sub->userdata);
1936 8 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 8 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 8 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
1940 7 1 if (r == 1)
1952 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);
1955 7 0 for (UV i = 0; i < count; i++) {
1957 1 6 if (r != 1) break;
1958 0 6 mXPUSHi((IV)value);
1965 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);
1969 1 0 if (items > 1) timeout = SvNV(ST(1));
1971 0 1 if (r == 1)
1982 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);
1986 0 1 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
1987 9 0 while (max_count-- > 0 && pubsub_int16_poll(sub, &value))
8 1 while (max_count-- > 0 && pubsub_int16_poll(sub, &value))
1988 0 8 mXPUSHi((IV)value);
1995 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);
1999 0 1 if (count == 0) XSRETURN(0);
2000 1 0 if (items > 2) timeout = SvNV(ST(2));
2001 0 1 if (!pubsub_int16_poll_wait(sub, &value, timeout)) XSRETURN(0);
2002 0 1 mXPUSHi((IV)value);
2003 2 1 for (UV i = 1; i < count; i++) {
2004 0 2 if (!pubsub_int16_poll(sub, &value)) break;
2005 0 2 mXPUSHi((IV)value);
2012 2 0 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
0 2 EXTRACT_SUB("Data::PubSub::Shared::Int16::Sub", self);
2022 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);
2024 1 0 RETVAL = (UV)sub->overflow_count;
2032 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);
2034 0 0 RETVAL = (UV)__atomic_load_n(&sub->hdr->write_pos, __ATOMIC_RELAXED);
2042 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);
2045 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);
2053 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);
2055 0 1 if (items > 1) sub->cursor = (uint64_t)SvUV(ST(1));
2056 1 0 RETVAL = (UV)sub->cursor;
2064 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);
2072 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);
2075 0 1 sub->cursor = (wp > sub->capacity) ? wp - sub->capacity : 0;
2082 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);
2086 5 1 while (pubsub_int16_poll(sub, &value)) {
2088 0 5 PUSHMARK(SP);
2089 0 5 mXPUSHi((IV)value);
2101 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);
2106 0 0 max_count = (items > 1) ? (uint32_t)SvUV(ST(1)) : UINT32_MAX;
2107 0 0 while (max_count-- > 0 && pubsub_int16_poll(sub, &value))
0 0 while (max_count-- > 0 && pubsub_int16_poll(sub, &value))
2108 0 0 mXPUSHi((IV)value);
2115 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);
2123 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);
2125 0 0 RETVAL = sub->notify_fd;