SkÃ¥ne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Forum   Kalender   Søg
MhonArc Dato: [Date Prev] [Kronologisk oversigt] [Date Next]   TrÃ¥d: [Date Prev] [Oversigt trÃ¥de] [Date Next]   MhonArc
 

Re: [PERL] Timeout



On Fri, 2 Aug 2002 sslug@sslug wrote:

> Jeg ville gerne kunne kalde et simpelt kommandolinie program, men da jeg
> ikke kan tillade mig at vente i evigheder hvis programmet skulle fejle, har
> jeg brug for at kunne afbryde programmet efter en periode.
>
> Jeg havde tænkt mig noget i den her stil:
>
> my $alarm = 0;
> local $SIG{ALRM} = sub { $alarm=1; };
> alarm (5);
> eval { `sleep 10` };
> print "timed out\n" if $alarm;

Det kan sikkert skrives pænere. Prøv at rette 10 til 1.


my $alarm = 0;
local $SIG{ALRM} = sub { $alarm=1; };
alarm (5);

$p=fork;
if(not $p) {
    `sleep 10`;
} else {
    use POSIX ":sys_wait_h";

    do {
        $kid = waitpid(-1,&WNOHANG);
        sleep 1;
    } until ($kid == -1 or $alarm == 1);

    if($alarm) {
        print "timed out\n"
    }
}


/Ole
-- 
Gør noget ved spam: Send det til sslug@sslug
http://www.net-tjek.dk/ehandel/indh1.htm



 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2005-08-10, klokken 19:54
Denne side vedligeholdes af MHonArc .