The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Sub::Timebound - Perl extension for timebound computations

SYNOPSIS

             use Sub::Timebound;

             sub fun 
             {
                my $i = shift;
                if ($i =~ /7$/) {
                        die "Simulated internal error\n";
                }
                while ($i) {
                        $i--;
                }
                return "All is well";
             }

             my $x = timeboundretry(10, 3, 5, \&fun, 10);
             ### Returns { value => '...', status => 0(FAILURE)/1(SUCCESS) }
             ### 'value' is the return value of fun()

             if ($x->{status}) {
                     # SUCCESS
                     $x->{value}
             } else {
                      # FAILURE
             }

DESCRIPTION

        Module exports "timeboundretry" - this is a wrapper that watches a function call.

        my $x = timeboundretry([TimeAllocated], [NumberOfAttempts], 
                        [PauseBetweenAttempts],[CodeRef],[Param1], [Param2], ...);


        [TimeAllocated]         - Seconds allocated to [CodeRef] to complete
        [NumberOfAttempts]      - Number of attempts made to [CodeRef]
        [PauseBetweenAttempts]  - Seconds to wait before making subsequent attempts
        [CodeRef]               - Reference to subroutine
        [Param1]...             - Parameters to subroutine

EXPORT

        timeboundretry()

SEE ALSO

        Proc::Reliable is a similar module that addresses external processes

AUTHOR

        Ramana Mokkapati, E<lt>mvr@cpan.org<gt>

COPYRIGHT AND LICENSE

        Copyright (C) 2005 by Ramana Mokkapati <mvr@cpan.org>

        This library is free software; you can redistribute it and/or modify
        it under the same terms as Perl itself, either Perl version 5.8.0 or,
        at your option, any later version of Perl 5 you may have available.