Branch Coverage

Shared.xs
Criterion Covered Total %
branch 393 742 52.9


line true false branch
33 7 18 uint32_t initial = (items > 3) ? (uint32_t)SvUV(ST(3)) : (uint32_t)max;
34 5 20 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
36 3 22 if (!h) croak("Data::Sync::Shared::Semaphore->new: %s", errbuf);
49 0 2 uint32_t initial = (items > 3) ? (uint32_t)SvUV(ST(3)) : (uint32_t)max;
51 0 2 if (!h) croak("Data::Sync::Shared::Semaphore->new_memfd: %s", errbuf);
64 1 1 if (!h) croak("Data::Sync::Shared::Semaphore->new_from_fd: %s", errbuf);
73 0 26 if (!SvROK(self)) return;
75 1 25 if (!h) return;
83 4 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 4 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 4 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
86 3 1 if (items > 1) timeout = SvNV(ST(1));
87 2 2 RETVAL = sync_sem_acquire(h, timeout);
95 24 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 24 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 24 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
97 22 2 RETVAL = sync_sem_try_acquire(h);
106 3 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
109 2 1 if (items > 2) timeout = SvNV(ST(2));
110 2 1 RETVAL = sync_sem_acquire_n(h, (uint32_t)n, timeout);
119 6 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 6 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 6 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
121 4 2 RETVAL = sync_sem_try_acquire_n(h, (uint32_t)n);
129 17 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 17 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 17 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
131 10 7 if (items > 1) {
142 4 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 4 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 4 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
144 0 4 RETVAL = sync_sem_drain(h);
152 33 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 33 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
1 32 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
154 1 31 RETVAL = sync_sem_value(h);
162 4 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 4 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 4 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
164 0 4 RETVAL = h->hdr->param;
172 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
174 1 1 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
182 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
184 0 2 RETVAL = h->backing_fd;
192 3 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
195 0 3 if (RETVAL < 0) croak("eventfd: %s", strerror(errno));
204 1 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
206 1 0 if (h->notify_fd >= 0 && h->notify_fd != fd) close(h->notify_fd);
1 0 if (h->notify_fd >= 0 && h->notify_fd != fd) close(h->notify_fd);
213 3 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
215 0 3 RETVAL = h->notify_fd;
223 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
225 2 0 RETVAL = sync_notify(h);
233 3 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
236 2 1 RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef;
244 0 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
246 0 0 if (sync_msync(h) != 0) croak("msync: %s", strerror(errno));
253 3 1 if (sv_isobject(self_or_class)) {
255 0 3 if (!h) croak("Attempted to use a destroyed object");
258 1 0 if (items < 2) croak("Usage: ...->unlink($path)");
261 1 2 if (!p) croak("cannot unlink anonymous or memfd object");
262 0 2 if (unlink(p) != 0)
269 1 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
298 3 10 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
300 3 10 if (!h) croak("Data::Sync::Shared::Barrier->new: %s", errbuf);
314 0 1 if (!h) croak("Data::Sync::Shared::Barrier->new_memfd: %s", errbuf);
327 1 0 if (!h) croak("Data::Sync::Shared::Barrier->new_from_fd: %s", errbuf);
336 0 11 if (!SvROK(self)) return;
338 0 11 if (!h) return;
346 9 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 9 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 9 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
347 9 0 double timeout = -1;
349 9 0 if (items > 1) timeout = SvNV(ST(1));
350 2 7 RETVAL = sync_barrier_wait(h, timeout);
358 5 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 5 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 5 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
360 2 3 RETVAL = sync_barrier_generation(h);
368 3 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
370 0 3 RETVAL = sync_barrier_arrived(h);
378 1 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
380 0 1 RETVAL = h->hdr->param;
388 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
390 1 1 RETVAL = sync_barrier_is_broken(h) ? 1 : 0;
398 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
406 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
408 1 1 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
416 1 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
418 0 1 RETVAL = h->backing_fd;
426 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
429 0 2 if (RETVAL < 0) croak("eventfd: %s", strerror(errno));
438 1 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
440 1 0 if (h->notify_fd >= 0 && h->notify_fd != fd) close(h->notify_fd);
1 0 if (h->notify_fd >= 0 && h->notify_fd != fd) close(h->notify_fd);
447 3 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
449 3 0 RETVAL = h->notify_fd;
457 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
459 2 0 RETVAL = sync_notify(h);
467 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
470 1 1 RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef;
478 0 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
480 0 0 if (sync_msync(h) != 0) croak("msync: %s", strerror(errno));
487 1 0 if (sv_isobject(self_or_class)) {
489 0 1 if (!h) croak("Attempted to use a destroyed object");
492 0 0 if (items < 2) croak("Usage: ...->unlink($path)");
495 0 1 if (!p) croak("cannot unlink anonymous or memfd object");
496 0 1 if (unlink(p) != 0)
503 1 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
530 3 11 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
532 1 13 if (!h) croak("Data::Sync::Shared::RWLock->new: %s", errbuf);
545 0 1 if (!h) croak("Data::Sync::Shared::RWLock->new_memfd: %s", errbuf);
558 0 1 if (!h) croak("Data::Sync::Shared::RWLock->new_from_fd: %s", errbuf);
567 0 16 if (!SvROK(self)) return;
569 1 15 if (!h) return;
577 8 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 8 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
1 7 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
579 0 7 if (items > 1) {
581 0 0 if (!sync_rwlock_rdlock_timed(h->hdr, timeout))
592 3 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
595 2 1 if (RETVAL)
605 3 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
608 2 1 if (RETVAL)
617 12 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 12 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 12 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
626 5 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 5 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 5 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
628 0 5 if (items > 1) {
630 0 0 if (!sync_rwlock_wrlock_timed(h->hdr, timeout))
641 3 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
644 1 2 if (RETVAL)
654 4 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 4 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 4 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
657 3 1 if (RETVAL)
666 8 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 8 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 8 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
675 1 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
685 2 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
687 1 1 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
695 2 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
697 0 2 RETVAL = h->backing_fd;
705 2 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
708 0 2 if (RETVAL < 0) croak("eventfd: %s", strerror(errno));
717 1 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
719 1 0 if (h->notify_fd >= 0 && h->notify_fd != fd) close(h->notify_fd);
1 0 if (h->notify_fd >= 0 && h->notify_fd != fd) close(h->notify_fd);
726 3 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
728 3 0 RETVAL = h->notify_fd;
736 2 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
738 2 0 RETVAL = sync_notify(h);
746 2 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
749 1 1 RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef;
757 0 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
759 0 0 if (sync_msync(h) != 0) croak("msync: %s", strerror(errno));
766 1 0 if (sv_isobject(self_or_class)) {
768 0 1 if (!h) croak("Attempted to use a destroyed object");
771 0 0 if (items < 2) croak("Usage: ...->unlink($path)");
774 0 1 if (!p) croak("cannot unlink anonymous or memfd object");
775 0 1 if (unlink(p) != 0)
782 13 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 13 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 13 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
788 5 8 if (val == 0) state = "unlocked";
789 5 3 else if (val < SYNC_RWLOCK_WRITER_BIT) state = "read_locked";
814 2 11 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
816 0 13 if (!h) croak("Data::Sync::Shared::Condvar->new: %s", errbuf);
829 0 1 if (!h) croak("Data::Sync::Shared::Condvar->new_memfd: %s", errbuf);
842 0 0 if (!h) croak("Data::Sync::Shared::Condvar->new_from_fd: %s", errbuf);
851 0 14 if (!SvROK(self)) return;
853 0 14 if (!h) return;
861 12 0 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 12 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 12 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
869 1 0 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
871 1 0 RETVAL = sync_condvar_try_lock(h);
879 13 0 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 13 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 13 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
887 4 0 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 4 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 4 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
890 4 0 if (items > 1) timeout = SvNV(ST(1));
891 1 3 RETVAL = sync_condvar_wait(h, timeout);
899 1 0 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
907 1 0 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
915 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
917 1 1 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
925 1 0 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
927 0 1 RETVAL = h->backing_fd;
935 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
938 0 2 if (RETVAL < 0) croak("eventfd: %s", strerror(errno));
947 1 0 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
949 1 0 if (h->notify_fd >= 0 && h->notify_fd != fd) close(h->notify_fd);
1 0 if (h->notify_fd >= 0 && h->notify_fd != fd) close(h->notify_fd);
956 3 0 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
958 3 0 RETVAL = h->notify_fd;
966 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
968 2 0 RETVAL = sync_notify(h);
976 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
979 1 1 RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef;
987 0 0 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 0 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 0 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
989 0 0 if (sync_msync(h) != 0) croak("msync: %s", strerror(errno));
996 1 0 if (sv_isobject(self_or_class)) {
998 0 1 if (!h) croak("Attempted to use a destroyed object");
1001 0 0 if (items < 2) croak("Usage: ...->unlink($path)");
1004 0 1 if (!p) croak("cannot unlink anonymous or memfd object");
1005 0 1 if (unlink(p) != 0)
1012 1 0 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
1039 3 6 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
1041 1 8 if (!h) croak("Data::Sync::Shared::Once->new: %s", errbuf);
1054 0 1 if (!h) croak("Data::Sync::Shared::Once->new_memfd: %s", errbuf);
1067 0 1 if (!h) croak("Data::Sync::Shared::Once->new_from_fd: %s", errbuf);
1076 0 10 if (!SvROK(self)) return;
1078 0 10 if (!h) return;
1086 6 0 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 6 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 6 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
1089 3 3 if (items > 1) timeout = SvNV(ST(1));
1090 4 2 RETVAL = sync_once_enter(h, timeout);
1098 4 0 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 4 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 4 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
1106 8 0 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 8 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 8 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
1108 4 4 RETVAL = sync_once_is_done(h);
1116 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
1124 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
1126 1 1 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
1134 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
1136 0 2 RETVAL = h->backing_fd;
1144 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
1147 0 2 if (RETVAL < 0) croak("eventfd: %s", strerror(errno));
1156 1 0 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 1 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
1158 1 0 if (h->notify_fd >= 0 && h->notify_fd != fd) close(h->notify_fd);
1 0 if (h->notify_fd >= 0 && h->notify_fd != fd) close(h->notify_fd);
1165 3 0 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 3 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
1167 3 0 RETVAL = h->notify_fd;
1175 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
1177 2 0 RETVAL = sync_notify(h);
1185 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
1188 1 1 RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef;
1196 0 0 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 0 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 0 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
1198 0 0 if (sync_msync(h) != 0) croak("msync: %s", strerror(errno));
1205 1 0 if (sv_isobject(self_or_class)) {
1207 0 1 if (!h) croak("Attempted to use a destroyed object");
1210 0 0 if (items < 2) croak("Usage: ...->unlink($path)");
1213 0 1 if (!p) croak("cannot unlink anonymous or memfd object");
1214 0 1 if (unlink(p) != 0)
1221 2 0 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 2 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
1227 1 1 if (val == SYNC_ONCE_INIT) state = "init";
1228 1 0 else if (val == SYNC_ONCE_DONE) state = "done";