Branch Coverage

Shared.xs
Criterion Covered Total %
branch 391 734 53.2


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 26 0 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
0 26 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
1 25 EXTRACT_HANDLE("Data::Sync::Shared::Semaphore", self);
82 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);
85 3 1 if (items > 1) timeout = SvNV(ST(1));
86 2 2 RETVAL = sync_sem_acquire(h, timeout);
94 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);
96 22 2 RETVAL = sync_sem_try_acquire(h);
105 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);
108 2 1 if (items > 2) timeout = SvNV(ST(2));
109 2 1 RETVAL = sync_sem_acquire_n(h, (uint32_t)n, timeout);
118 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);
120 4 2 RETVAL = sync_sem_try_acquire_n(h, (uint32_t)n);
128 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);
130 10 7 if (items > 1) {
141 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);
143 0 4 RETVAL = sync_sem_drain(h);
151 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);
153 1 31 RETVAL = sync_sem_value(h);
161 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);
163 0 4 RETVAL = h->hdr->param;
171 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);
173 1 1 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
181 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);
183 0 2 RETVAL = h->backing_fd;
191 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);
193 0 3 RETVAL = sync_create_eventfd(h);
202 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);
204 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);
211 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);
213 0 3 RETVAL = h->notify_fd;
221 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);
223 2 0 RETVAL = sync_notify(h);
231 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);
234 2 1 RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef;
242 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);
251 3 1 if (sv_isobject(self_or_class)) {
253 0 3 if (!h) croak("Attempted to use a destroyed object");
256 1 0 if (items < 2) croak("Usage: ...->unlink($path)");
259 1 2 if (!p) croak("cannot unlink anonymous or memfd object");
260 0 2 if (unlink(p) != 0)
267 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);
296 3 10 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
298 3 10 if (!h) croak("Data::Sync::Shared::Barrier->new: %s", errbuf);
312 0 1 if (!h) croak("Data::Sync::Shared::Barrier->new_memfd: %s", errbuf);
325 1 0 if (!h) croak("Data::Sync::Shared::Barrier->new_from_fd: %s", errbuf);
334 11 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 11 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 11 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
343 8 0 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 8 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
0 8 EXTRACT_HANDLE("Data::Sync::Shared::Barrier", self);
344 8 0 double timeout = -1;
346 8 0 if (items > 1) timeout = SvNV(ST(1));
347 2 6 RETVAL = sync_barrier_wait(h, timeout);
355 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);
357 2 3 RETVAL = sync_barrier_generation(h);
365 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);
367 0 3 RETVAL = sync_barrier_arrived(h);
375 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);
377 0 1 RETVAL = h->hdr->param;
385 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);
393 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);
395 1 1 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
403 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);
405 0 1 RETVAL = h->backing_fd;
413 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);
415 2 0 RETVAL = sync_create_eventfd(h);
424 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);
426 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);
433 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);
435 3 0 RETVAL = h->notify_fd;
443 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);
445 2 0 RETVAL = sync_notify(h);
453 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);
456 1 1 RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef;
464 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);
473 1 0 if (sv_isobject(self_or_class)) {
475 0 1 if (!h) croak("Attempted to use a destroyed object");
478 0 0 if (items < 2) croak("Usage: ...->unlink($path)");
481 0 1 if (!p) croak("cannot unlink anonymous or memfd object");
482 0 1 if (unlink(p) != 0)
489 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);
516 3 10 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
518 1 12 if (!h) croak("Data::Sync::Shared::RWLock->new: %s", errbuf);
531 0 1 if (!h) croak("Data::Sync::Shared::RWLock->new_memfd: %s", errbuf);
544 0 1 if (!h) croak("Data::Sync::Shared::RWLock->new_from_fd: %s", errbuf);
553 15 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 15 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
1 14 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
562 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);
564 0 7 if (items > 1) {
566 0 0 if (!sync_rwlock_rdlock_timed(h->hdr, timeout))
577 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);
580 2 1 if (RETVAL)
590 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);
593 1 0 if (RETVAL)
602 11 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 11 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 11 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
611 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);
613 0 5 if (items > 1) {
615 0 0 if (!sync_rwlock_wrlock_timed(h->hdr, timeout))
626 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);
629 1 2 if (RETVAL)
639 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);
642 1 0 if (RETVAL)
651 6 0 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 6 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
0 6 EXTRACT_HANDLE("Data::Sync::Shared::RWLock", self);
660 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);
670 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);
672 1 1 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
680 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);
682 0 2 RETVAL = h->backing_fd;
690 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);
692 2 0 RETVAL = sync_create_eventfd(h);
701 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);
703 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);
710 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);
712 3 0 RETVAL = h->notify_fd;
720 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);
722 2 0 RETVAL = sync_notify(h);
730 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);
733 1 1 RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef;
741 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);
750 1 0 if (sv_isobject(self_or_class)) {
752 0 1 if (!h) croak("Attempted to use a destroyed object");
755 0 0 if (items < 2) croak("Usage: ...->unlink($path)");
758 0 1 if (!p) croak("cannot unlink anonymous or memfd object");
759 0 1 if (unlink(p) != 0)
766 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);
772 5 8 if (val == 0) state = "unlocked";
773 5 3 else if (val < SYNC_RWLOCK_WRITER_BIT) state = "read_locked";
798 2 11 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
800 0 13 if (!h) croak("Data::Sync::Shared::Condvar->new: %s", errbuf);
813 0 1 if (!h) croak("Data::Sync::Shared::Condvar->new_memfd: %s", errbuf);
826 0 0 if (!h) croak("Data::Sync::Shared::Condvar->new_from_fd: %s", errbuf);
835 14 0 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 14 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
0 14 EXTRACT_HANDLE("Data::Sync::Shared::Condvar", self);
844 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);
852 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);
854 1 0 RETVAL = sync_condvar_try_lock(h);
862 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);
870 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);
873 4 0 if (items > 1) timeout = SvNV(ST(1));
874 1 3 RETVAL = sync_condvar_wait(h, timeout);
882 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);
890 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);
898 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);
900 1 1 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
908 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);
910 0 1 RETVAL = h->backing_fd;
918 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);
920 2 0 RETVAL = sync_create_eventfd(h);
929 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);
931 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);
938 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);
940 3 0 RETVAL = h->notify_fd;
948 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);
950 2 0 RETVAL = sync_notify(h);
958 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);
961 1 1 RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef;
969 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);
978 1 0 if (sv_isobject(self_or_class)) {
980 0 1 if (!h) croak("Attempted to use a destroyed object");
983 0 0 if (items < 2) croak("Usage: ...->unlink($path)");
986 0 1 if (!p) croak("cannot unlink anonymous or memfd object");
987 0 1 if (unlink(p) != 0)
994 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);
1021 3 6 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
1023 1 8 if (!h) croak("Data::Sync::Shared::Once->new: %s", errbuf);
1036 0 1 if (!h) croak("Data::Sync::Shared::Once->new_memfd: %s", errbuf);
1049 0 1 if (!h) croak("Data::Sync::Shared::Once->new_from_fd: %s", errbuf);
1058 10 0 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 10 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
0 10 EXTRACT_HANDLE("Data::Sync::Shared::Once", self);
1067 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);
1070 3 3 if (items > 1) timeout = SvNV(ST(1));
1071 4 2 RETVAL = sync_once_enter(h, timeout);
1079 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);
1087 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);
1089 4 4 RETVAL = sync_once_is_done(h);
1097 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);
1105 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);
1107 1 1 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
1115 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);
1117 0 2 RETVAL = h->backing_fd;
1125 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);
1127 2 0 RETVAL = sync_create_eventfd(h);
1136 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);
1138 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);
1145 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);
1147 3 0 RETVAL = h->notify_fd;
1155 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);
1157 2 0 RETVAL = sync_notify(h);
1165 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);
1168 1 1 RETVAL = (v >= 0) ? newSViv((IV)v) : &PL_sv_undef;
1176 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);
1185 1 0 if (sv_isobject(self_or_class)) {
1187 0 1 if (!h) croak("Attempted to use a destroyed object");
1190 0 0 if (items < 2) croak("Usage: ...->unlink($path)");
1193 0 1 if (!p) croak("cannot unlink anonymous or memfd object");
1194 0 1 if (unlink(p) != 0)
1201 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);
1207 1 1 if (val == SYNC_ONCE_INIT) state = "init";
1208 1 0 else if (val == SYNC_ONCE_DONE) state = "done";