I built both 5.14.0-RC1 and 5.12.3 on a completely vanilla OpenBSD 4.8.
./Confiure -Dusethreads -des
I used this test script:
require POSIX;
use Test::More tests => 1;
my $new = POSIX::SigSet->new(&POSIX::SIGUSR1);
POSIX::sigprocmask(&POSIX::SIG_BLOCK, $new);
my $gotit = 0;
$SIG{USR1} = sub { $gotit++ };
kill SIGUSR1, $$;
is( $gotit, 0, 'Haven\'t received third signal yet');
my $old = POSIX::SigSet->new();
POSIX::sigsuspend($old);
Both hung.
It's not a regression.
On Wed 20.Apr'11 at 23:36:58 +0200, Leon Timmermans wrote:
> On Wed, Apr 20, 2011 at 5:06 PM, Leon Timmermans <fawaka@gmail.com> wrote:
> > Ugh, portable signal handling really does suck balls. I really don't
> > have the time to look deeply into this right now, but I would suggest
> > someone to port the test in question to C (should be fairly
> > straightforward) and try to run it. If that also doesn't work either
> > it's the OS that's at fault. My experience with OpenBSD and POSIXy
> > stuff has been to assume that it doesn't work until there's proof of
> > the opposite :-(. straceing (or whatever OpenBSD uses for that) may
> > also provide insights on whether the signal really doesn't arrive or
> > that something else happens.
>
> On second thought, lets try something different. At this moment it
> doesn't matter if it's broken or not but if it's a regression or not.
> If it isn't then let's not care until 5.15. Can anyone with access to
> OpenBSD test if the sniplet Dave posted earlier works on a threaded
> perl 5.12/5.10. If it does work we probably have a regression…
>
> Leon
Thread Previous
|
Thread Next