02 Jul 2011 00:24:59 UTC
- Distribution: Sys-SigAction
- Source (raw)
- Browse (raw)
- How to Contribute
- Issues (3)
- Testers (2680 / 13 / 38)
- KwaliteeBus factor: 0
- License: perl_5
- Activity24 month
- Download (18.81KB)
- MetaCPAN Explorer
- Subscribe to distribution
- This version
- Latest version++ed by:5 non-PAUSE usersLBAXTER Lincoln A Baxterand 1 contributors
- Lincoln A. Baxter <lab-at-lincolnbaxter-dot-com>
- Changes in Sys::SigAction 0.15 1 Jul 2011
- Changes in Sys::SigAction 0.13 23 Jun 2011
- Changes in Sys::SigAction 0.12 20 Jun 2011
- Changes in Sys::SigAction 0.11 31 Jan 2009
- Changes in Sys::SigAction 0.10 24 Oct 2006
- Changes in Sys::SigAction 0.09 17 Oct 2006
- Changes in Sys::SigAction 0.08 11 Oct 2006
- Changes in Sys::SigAction 0.07 09 Oct 2006
- Changes in Sys::SigAction 0.06 25 June 2006
- Changes in Sys::SigAction 0.05 24 July 2004
- Changes in Sys::SigAction 0.04 7 April 2004
- Changes in Sys::SigAction 0.02 3 February 2004
- Original version: Sys::SigAction 0.01 17 January 2004
Sys::SigAction::Changes - List of significant changes
Revision history for Sys::SigAction.
Clean up POD. Close bug #69057. Other minor tweaks to POD.
No functional changes. Fix for test timeout.t. Fix strict undefined symbol error in timeout.t, when Time::HiRes is not present. Not sure if constant pragma will exist in all supported perl versions, so, we just commented out the use strict in this test.
Print warning when Time::HiRes not found in Makefile.PL
Conditionally add 'LICENSE' => 'perl' to WriteMakefile() call if $ExtUtils::MakeMaker::VERSION >= 6.3002.
Added support for timeout_call() in fractional seconds expressed as a floating point number. If Time::HiRes is not loadable, then the timeout value is raised to the next high integer value with the POSIX:ceil() funtion.
Added sig_alarm(), which timeout_call uses. This is drop in replacement for alarm(). If Time::HiRes is not loadable, then the seconds argument is raised to the next high integer value with the POSIX:ceil() funtion.
Update sample code to use double evals in response
The bug author wrote:
Suppose the eval dies for some reason unrelated to the signal handling just before the alarm expires, and then the code exits the eval, and then the alarm expires before the final alarm(0) can be called. Now either the code will completely die because there is no SIGALRM handler in place to catch the signal, or the wrong handler (not the local handler) will be called.
Make the same change in timeout_call(). The change traps the remote possibility that an alarm signal could arrive between the time code dies (for some unrelated reason) and the final eval is called or called.
Remove Restriction in License which required permission to include in CDROM media for commercial distribution.
License is now Straight GPL or Artistic as Perl is.
Fix safe attribute for perl >= 5.8.2, but applying patch in (duplicate) bugs:
Test by cloning mask.t into safe.t in the block for perl => 5.008002 and test setting safe attribute. Sadly, using both masked signals and safe=>1 at the same time, is still broken.
Add checks for unsupported configurations in Makefile.PL to (hopefully) suppress the Smoke test failures for those environments.
Documentation cleanup, thanks to Tim Maher.
Francesco has pointed out that I still have a special case of safe=>0 broken for perl 5.8.0.
The perl 5.8.1 build I tested with (I could not find 5.8.0) it turns out has .../lib/5.8.1/auto/POSIX/SigAction/safe.al, my previous tests works.
This version of Sys::SigAction now as a test of these subtleties in t/safe.t, those still no real test of safe=>1 for perls >= 5.8.2
Add extra protection to test of $attrs->(safe} when the perl version is between 5.8 and 5.8.2, thanks to Francesco Duranti. Now test for it being defined before testing it's value. It would be a pretty bizarre case for that to happen, but... belt and suspenders... is 'safe'.
Fix warning in safe.t which referred to attrs.t (old test name) which was renamed to mask.t, to refer to mask.t.
Version 0.06 broke in perl < 5.8.2... (who uses that any more!!!) Well someone does... at least on RedHat... I did (do) claim backwards compatibility... So I fixed it right this time, by checking the perl version before called the safe accessor on the POSIX::SigAction object.
Still no good test for safe mode... be prepared to send me a test if you think safe signal handling is broken... for sure I could not get it to work the way I think it should with with deferred signals.
Fix setting of SAFE flag in POSIX::sigaction. In response to CPAN bug: http://rt.cpan.org/Ticket/Display.html?id=19916 Thanks to Steve Purk?, for point this out.
This required NOT setting safe=>1 (changing to to safe=>0) in t/attrs.t and the the dbd-oracle test script.
A new test for safe=>1 needs to be developed, which explicitly tests deferred signal handling. I would welcome such a contribution.
Lincoln A Baxter
Fix typo in POD for mask => thanks to Henri Asseily This was apparently never uploaded. :-(
Lincoln A Baxter
Modify forever() in timeout.t so just loop instead of trying to read from STDIN, which apparently does not block or immediately returns an error on some platforms or test environments
Lincoln A Baxter ck =head2 Changes in Sys::SigAction 0.03 4 April 2004
Skip attrs.t test if perl version < 5.8.2 (rt.cpan.org ticket #5948)
Rename dbd-oracle-timout.PL -> dbd-oracle-timeout.POD
Comment out 'use warnings' for $] < 5.006
Suppress undefined warning in destructor for $] < 5.008
Documentation expansion and cleanup
Lincoln A Baxter
original version; created by h2xs 1.22 with options:
--compat-version=5.5.0 -X --name=Sys::SigAction \ --use-new-tests --skip-warnings --version=0.01
Lincoln A Baxter
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 1:
=cut found outside a pod block. Skipping to next block.
Module Install Instructions
To install Sys::SigAction, copy and paste the appropriate command in to your terminal.
perl -MCPAN -e shell install Sys::SigAction
For more information on module installation, please visit the detailed CPAN module installation guide.