Skip Menu |

This queue is for tickets about the POSIX-pselect CPAN distribution.

Report information
The Basics
Id: 77485
Status: open
Priority: 0/
Queue: POSIX-pselect

People
Owner: Nobody in particular
Requestors: LEONT [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Fix building on perl 5.15.3 and up
Due to a change in the internal representation of POSIX::SigSet's (necessary because the old one would crash on threaded perls), POSIX::pselect is currently broken. This patch fixes it. Regards, Leon
Subject: 0002-Build-on-perl-5.15.3-and-up.patch
From 54e13910be3fb77bbfc620654f998afb1f3a3ab7 Mon Sep 17 00:00:00 2001 From: Leon Timmermans <fawaka@gmail.com> Date: Fri, 11 May 2012 17:08:38 +0200 Subject: [PATCH 2/2] Build on perl 5.15.3 and up These have a new POSIX::SigSet representation, that doesn't segfault threading perls. --- src/POSIX-pselect.xs | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/src/POSIX-pselect.xs b/src/POSIX-pselect.xs index 62b31b8..35d6780 100644 --- a/src/POSIX-pselect.xs +++ b/src/POSIX-pselect.xs @@ -3,8 +3,13 @@ static void setup_sigset(pTHX_ sigset_t* const sigmask, SV* const arg) { SvGETMAGIC(arg); +#if PERL_VERSION > 15 || PERL_VERSION == 15 && PERL_SUBVERSION > 2 + if( sv_isobject(arg) && sv_derived_from(arg, "POSIX::SigSet") && SvPOK(SvRV(arg)) ) { + *sigmask = *(sigset_t*)SvPV_nolen(SvRV(arg)); +#else if( sv_isobject(arg) && sv_derived_from(arg, "POSIX::SigSet") && SvIOK(SvRV(arg)) ) { *sigmask = *(sigset_t*)SvIV( SvRV(arg) ); +#endif } else if(SvOK(arg)) { if(SvROK(arg) && SvTYPE(SvRV(arg)) == SVt_PVAV) { -- 1.7.5.4
On 2012-05-27 18:31:21, LEONT wrote: Show quoted text
> Due to a change in the internal representation of POSIX::SigSet's > (necessary because the old one would crash on threaded perls), > POSIX::pselect is currently broken. This patch fixes it.
This was apparently fixed in 0.03 and this ticket may be closed. Regards, Slaven