Changeset 424

Show
Ignore:
Timestamp:
03/21/08 18:15:02 (8 months ago)
Author:
eevee
Message:

Removed timed_exec in favor of the Time::Out module. (#289)

Location:
veekun/trunk
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • veekun/trunk/README.pod

    r407 r424  
    3939    String::Approx 
    4040    Template 
     41    Time::Out 
    4142    XML::Feed 
    4243    YAML 
  • veekun/trunk/lib/Vee.pm

    r407 r424  
    55use strict; 
    66use warnings; 
     7 
     8use Image::Size; 
     9use LWP::UserAgent; 
     10use Time::Out qw/timeout/; 
     11use YAML qw//; 
    712 
    813# load crap 
     
    2833use Vee::Utils; 
    2934use Vee::Dex; 
    30 use YAML qw//; 
    31 use LWP::UserAgent; 
    32 use Image::Size; 
    3335 
    3436our $VERSION = '0.01'; 
     
    5658 
    5759# grab the current revision number, if applicable 
    58 __PACKAGE__->cache->{svn_revision} = 
    59     Vee::Utils::timed_exec( 5 => sub { 
    60         open my $fh, '-|', 'svnversion' or return; 
    61         my $revision = <$fh>; 
    62         close $fh; 
    63         $revision =~ s/ \D+ $//gx; 
    64         return $revision; 
    65     } ) 
    66     unless __PACKAGE__->debug; 
     60__PACKAGE__->cache->{svn_revision} = timeout 5, sub { 
     61warn "begin sub"; 
     62    open my $fh, '-|', 'svnversion' or return; 
     63    my $revision = <$fh>; 
     64    close $fh; 
     65    $revision =~ s/ \D+ $//gx; 
     66    return $revision; 
     67warn "end sub"; 
     68}; 
    6769 
    6870{ 
  • veekun/trunk/lib/Vee/Controller/Root.pm

    r423 r424  
    44use warnings; 
    55use base 'Catalyst::Controller'; 
     6 
     7use Vee::Authorization; 
     8use Vee::Utils; 
    69 
    710use Data::Dumper; 
     
    912use File::Path; 
    1013use Time::HiRes; 
     14use Time::Out qw/timeout/; 
    1115use URI; 
    1216use XML::Feed; 
    13  
    14 use Vee::Authorization; 
    15 use Vee::Utils; 
    1617 
    1718# Sets the actions in this controller to be registered with no prefix 
     
    285286    # Refresh Bulbapedia feeds 
    286287eval { 
    287     Vee::Utils::timed_exec( 5 => sub { 
     288    timeout 5, sub { 
     289warn "begin sub"; 
    288290        my $uri = URI->new($c->site_opts->{rss_url}); 
    289291        my @entries = XML::Feed->parse($uri)->entries; 
     
    291293            @entries[ 0 .. $c->site_opts->{page_sizes}{index}{rss} - 1 ]; 
    292294        $c->cache->{rss_entries} = \@entries; 
    293     } ); 
     295warn "end sub"; 
     296    }; 
    294297}; 
    295298 
  • veekun/trunk/lib/Vee/Utils.pm

    r406 r424  
    8989} 
    9090 
    91 # execute code but give up after x seconds 
    92 # this is taken from perldoc -f alarm 
    93 sub timed_exec { 
    94     my ($secs, $subref) = @_; 
    95     my $res = eval { 
    96         local $SIG{ALRM} = sub { die "alarm\n" }; 
    97         alarm $secs; 
    98         my $res = $subref->(); 
    99         alarm 0; 
    100         return $res; 
    101     }; 
    102  
    103     if ($@) { 
    104         die unless $@ eq "alarm\n";  # propagate unexpected errors 
    105         return; 
    106     } else { 
    107         return $res; 
    108     } 
    109 } 
    110  
    11191# URL-validation regex 
    11292# Inferred from the W3's BNF: http://www.w3.org/Addressing/URL/5_BNF.html