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



sslug@sslug writes:

> Og programstumpen finder godt nok ud af at programmet et timet ud, men det
> enter stadigvæk - jeg kunne kalde exit fra signal håndterings rutinen, men
> programmet skal kunne arbejde videre efter en timeout.

Jeg kan ikke helt parse den sætning.

For det første så skal du passe på med at blamde alarm og
sleep. Systemkaldet sleep kan være implementeret med alarm.

'perldoc -f alarm' giver følgende kodestump, der kan se ud til at gøre
det du ønsker:

eval {
     local $SIG{ALRM} = sub { die "alarm\n" }; # NB:\n required
     alarm $timeout;
     $nread = sysread SOCKET, $buffer, $size;
     alarm 0;
};
if ($@) {
     die unless $@ eq "alarm\n";   # propagate unexpected errors
     # timed out
} else {
     # didn't
}

-- 
 Peter Makholm     |    Yes, you can fight it, but in the end the ultimate
 sslug@sslug |                           goal of life is to have fun
 http://hacking.dk |                                     -- Linus Torvalds


 
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 .