diff options
author | David Mitchell <davem@iabyn.com> | 2018-05-09 10:54:55 +0100 |
---|---|---|
committer | David Mitchell <davem@iabyn.com> | 2018-05-11 08:37:20 +0100 |
commit | 64a9c780950becebc7326a31d067801ec9b187a2 (patch) | |
tree | 861a1fcfd3643948f372bf91d956e0f5b0b95c57 | |
parent | 6b12a45f5c460336891492f0e67595db5af4983d (diff) | |
download | perl-64a9c780950becebc7326a31d067801ec9b187a2.tar.gz |
Revert "set PERL_EXIT_DESTRUCT_END in all embeddings"
This reverts commit 8e920bd341e241f50a74dbf8aa343319f204e200.
Also skip the tests in t/op/blocks.t
RT #132863
8e920bd341 sets the PERL_EXIT_DESTRUCT_END flag on non-UNIXy platforms,
like is already done on UNIXy platforms. This makes things like
BEGIN { exit(1) } call END blocks on those platforms (like they already
do on UNIX).
But it caused problems with win32 pseudo-forks, so revert for 5.28
and re-address the issues sometime later.
-rw-r--r-- | NetWare/interface.c | 1 | ||||
-rw-r--r-- | NetWare/interface.cpp | 1 | ||||
-rw-r--r-- | os2/perlrexx.c | 1 | ||||
-rw-r--r-- | symbian/PerlBase.cpp | 4 | ||||
-rw-r--r-- | t/op/blocks.t | 4 | ||||
-rw-r--r-- | win32/perllib.c | 1 |
6 files changed, 4 insertions, 8 deletions
diff --git a/NetWare/interface.c b/NetWare/interface.c index b943d21147..1d298854c9 100644 --- a/NetWare/interface.c +++ b/NetWare/interface.c @@ -62,7 +62,6 @@ ClsPerlHost::PerlCreate(PerlInterpreter *my_perl) /* if (!(my_perl = perl_alloc())) // Allocate memory for Perl. return (1);*/ perl_construct(my_perl); - PL_exit_flags |= PERL_EXIT_DESTRUCT_END; return 1; } diff --git a/NetWare/interface.cpp b/NetWare/interface.cpp index 7fe027933c..b08d6c249e 100644 --- a/NetWare/interface.cpp +++ b/NetWare/interface.cpp @@ -53,7 +53,6 @@ ClsPerlHost::PerlCreate(PerlInterpreter *my_perl) /* if (!(my_perl = perl_alloc())) // Allocate memory for Perl. return (1);*/ perl_construct(my_perl); - PL_exit_flags |= PERL_EXIT_DESTRUCT_END; return 1; } diff --git a/os2/perlrexx.c b/os2/perlrexx.c index b9f6789677..18d655137d 100644 --- a/os2/perlrexx.c +++ b/os2/perlrexx.c @@ -74,7 +74,6 @@ init_perl(int doparse) if (!my_perl) return 0; perl_construct(my_perl); - PL_exit_flags |= PERL_EXIT_DESTRUCT_END; PL_perl_destruct_level = 1; } if (!doparse) diff --git a/symbian/PerlBase.cpp b/symbian/PerlBase.cpp index 88810bfd12..9312abeb55 100644 --- a/symbian/PerlBase.cpp +++ b/symbian/PerlBase.cpp @@ -141,10 +141,6 @@ void CPerlBase::ConstructL() User::LeaveIfNull(iPerl); iState = EPerlAllocated; perl_construct(iPerl); // returns void - { - PerlInterpreter *my_perl = iPerl; - PL_exit_flags |= PERL_EXIT_DESTRUCT_END; - } if (!iStdioInitFunc) { iConsole = Console::NewL(_L("Perl Console"), diff --git a/t/op/blocks.t b/t/op/blocks.t index 420a1344a7..1fb369a1a1 100644 --- a/t/op/blocks.t +++ b/t/op/blocks.t @@ -189,6 +189,10 @@ SKIP: { SKIP: { + if ($^O =~ /^(MSWin32|NetWare|os2)$/) { + skip "non_UNIX plafforms and PERL_EXIT_DESTRUCT_END (RT #132863)", 6; + } + fresh_perl_is( "$testblocks BEGIN { exit 1; }", "begin\nunitcheck\ncheck\nend", diff --git a/win32/perllib.c b/win32/perllib.c index 25b20156ec..246f67aa1a 100644 --- a/win32/perllib.c +++ b/win32/perllib.c @@ -230,7 +230,6 @@ RunPerl(int argc, char **argv, char **env) if (!(my_perl = perl_alloc())) return (1); perl_construct(my_perl); - PL_exit_flags |= PERL_EXIT_DESTRUCT_END; PL_perl_destruct_level = 0; /* PERL_SYS_INIT() may update the environment, e.g. via ansify_path(). |