Some fortification of misplaced inits/shutdowns.
authorshort <>
Wed, 28 Sep 2005 13:01:22 +0000 (13:01 +0000)
committershort <>
Wed, 28 Sep 2005 13:01:22 +0000 (13:01 +0000)
 - Currently it also occurs on aborted HTTP connections.

Web.pm

diff --git a/Web.pm b/Web.pm
index 8244e59..c5c1ae9 100644 (file)
--- a/Web.pm
+++ b/Web.pm
@@ -306,7 +306,7 @@ sub exit_hook
 }
 sub exit_hook_start
 {
-       cluck "exit_hook_start() twice?" if defined $exit_orig;
+       do { cluck "exit_hook_start() twice?"; return; } if defined $exit_orig;
        $exit_orig=\&CORE::GLOBAL::exit;
        # Prevent: Subroutine CORE::GLOBAL::exit redefined
        no warnings 'redefine';
@@ -316,7 +316,8 @@ sub exit_hook_stop
 {
        do { cluck "exit_hook_stop() without exit_hook_start()?"; return; }
                        if \&exit_hook ne \&CORE::GLOBAL::exit;
-       cluck "INTERNAL: exit_orig uninitialized" if !$exit_orig;
+       do { cluck "INTERNAL: exit_orig uninitialized"; return; }
+                       if !$exit_orig;
        # Prevent: Subroutine CORE::GLOBAL::exit redefined
        no warnings 'redefine';
        *CORE::GLOBAL::exit=$exit_orig;