From dca84f1765496c5beb5ac418286c588eb8c268d9 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Thu, 18 May 2023 19:26:24 +0200 Subject: [PATCH] Upgrade to 1.68 --- lib/threads/shared.pm | 4 ++-- shared.xs | 21 +++++++++------------ 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/lib/threads/shared.pm b/lib/threads/shared.pm index 1fd2899..6e67acd 100644 --- a/lib/threads/shared.pm +++ b/lib/threads/shared.pm @@ -8,7 +8,7 @@ use Config; use Scalar::Util qw(reftype refaddr blessed); -our $VERSION = '1.64'; # Please update the pod, too. +our $VERSION = '1.68'; # Please update the pod, too. my $XS_VERSION = $VERSION; $VERSION = eval $VERSION; @@ -196,7 +196,7 @@ threads::shared - Perl extension for sharing data structures between threads =head1 VERSION -This document describes threads::shared version 1.64 +This document describes threads::shared version 1.68 =head1 SYNOPSIS diff --git a/shared.xs b/shared.xs index 6a7f03c..f78542d 100644 --- a/shared.xs +++ b/shared.xs @@ -40,7 +40,7 @@ * proxy PVLV element with attached element magic. * * Pointers to the shared SV are squirrelled away in the mg->mg_ptr field - * of magic (with mg_len == 0), and in the IV2PTR(SvIV(sv)) field of tied + * of magic (with mg_len == 0), and in the INT2PTR(SvIV(sv)) field of tied * object SVs. These pointers have to be hidden like this because they * cross interpreter boundaries, and we don't want sv_clear() and friends * following them. @@ -130,14 +130,11 @@ #include "EXTERN.h" #include "perl.h" #include "XSUB.h" -#ifdef HAS_PPPORT_H -# define NEED_sv_2pv_flags -# define NEED_vnewSVpvf -# define NEED_warner -# define NEED_newSVpvn_flags -# include "ppport.h" -# include "shared.h" -#endif +#define NEED_sv_2pv_flags +#define NEED_vnewSVpvf +#define NEED_warner +#define NEED_newSVpvn_flags +#include "ppport.h" #ifndef CLANG_DIAG_IGNORE # define CLANG_DIAG_IGNORE(x) @@ -704,10 +701,10 @@ Perl_sharedsv_cond_timedwait(perl_cond *cond, perl_mutex *mut, double abs) abs -= (NV)ts.tv_sec; ts.tv_nsec = (long)(abs * 1000000000.0); - CLANG_DIAG_IGNORE_STMT(-Wthread-safety); + CLANG_DIAG_IGNORE(-Wthread-safety) /* warning: calling function 'pthread_cond_timedwait' requires holding mutex 'mut' exclusively [-Wthread-safety-analysis] */ switch (pthread_cond_timedwait(cond, mut, &ts)) { - CLANG_DIAG_RESTORE_STMT; + CLANG_DIAG_RESTORE case 0: got_it = 1; break; case ETIMEDOUT: break; @@ -1145,7 +1142,7 @@ sharedsv_array_mg_CLEAR(pTHX_ SV *sv, MAGIC *mg) I32 items = isav ? AvFILLp((AV *)ssv) + 1 : 0; HE *iter; if (!isav) hv_iterinit((HV *)ssv); - while (isav ? items-- : !!(iter = hv_iternext((HV *)ssv))) { + while (isav ? items-- : cBOOL(iter = hv_iternext((HV *)ssv))) { SV *sv = isav ? *svp++ : HeVAL(iter); if (!sv) continue; if ( (SvOBJECT(sv) || (SvROK(sv) && (sv = SvRV(sv)))) -- 2.40.1