ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



Mail::SpamAssassin::Timeout(3)       User Contributed Perl Documentation      Mail::SpamAssassin::Timeout(3)



NAME
       Mail::SpamAssassin::Timeout - safe, reliable timeouts in perl

SYNOPSIS
           # non-timeout code...

           my $t = Mail::SpamAssassin::Timeout->new({ secs => 5 });

           $t->run(sub {
               # code to run with a 5-second timeout...
           });

           if ($t->timed_out()) {
               # do something...
           }

           # more non-timeout code...

DESCRIPTION
       This module provides a safe, reliable and clean API to provide alarm(2)-based timeouts for perl code.

       Note that $SIG{ALRM} is used to provide the timeout, so this will not interrupt out-of-control
       regular expression matches.

       Nested timeouts are supported.

PUBLIC METHODS
       my $t = Mail::SpamAssassin::Timeout->new({ ... options ... });
           Constructor.  Options include:

           secs => $seconds
               timeout, in seconds.  Optional; if not specified, no timeouts will be applied.

       $t->run($coderef)
           Run a code reference within the currently-defined timeout.

           The timeout is as defined by the secs parameter to the constructor.

           Returns whatever the subroutine returns, or "undef" on timeout.  If the timer times out,
           "$t-<gt"timed_out()> will return 1.

           Time elapsed is not cumulative; multiple runs of "run" will restart the timeout from scratch.

       $t->run_and_catch($coderef)
           Run a code reference, as per "$t-<gt"run()>, but also catching any "die()" calls within the code
           reference.

           Returns "undef" if no "die()" call was executed and $@ was unset, or the value of $@ if it was
           set.  (The timeout event doesn't count as a "die()".)

       $t->timed_out()
           Returns 1 if the most recent code executed in "run()" timed out, or "undef" if it did not.

       $t->reset()
           If called within a "run()" code reference, causes the current alarm timer to be reset to its
           starting value.



perl v5.8.8                                      2007-05-21                   Mail::SpamAssassin::Timeout(3)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.