Flashnux

GNU/Linux man pages

Livre :
Expressions régulières,
Syntaxe et mise en oeuvre :

ISBN : 978-2-7460-9712-4
EAN : 9782746097124
(Editions ENI)

GNU/Linux

CentOS 4.8

i386

Mail::SpamAssassin::Timeout(3pm)


Mail::SpamAssassin::Timeout

Mail::SpamAssassin::Timeout

NAME
SYNOPSIS
DESCRIPTION
PUBLIC METHODS

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.



Mail::SpamAssassin::Timeout(3pm)