The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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.