Alarm::Concurrent - setalarm / clearalarm funktioniert nicht(?)

20/08/2008 - 13:30 von Frank Bergemann | Report spam
Hi,

folgende Version funktioniert:
#!/usr/bin/perl -w

use strict;

use Alarm::Concurrent qw( :OVERLOAD :ALL );

setalarm (3, sub {die "main alarm (#9 sec) expired";});
printf("main alarm (#9 sec) set");

setalarm (9, sub {die "main alarm (#3 sec) expired";});
printf("main alarm (#3 sec) set");

clearalarm(-1);
clearalarm (-1);
exit (0);

Aber wenn ich die timer Werte tausche, dann bekomme ich Probleme:

#!/usr/bin/perl -w

use strict;

use Alarm::Concurrent qw( :OVERLOAD :ALL );

setalarm (9, sub {die "main alarm (#9 sec) expired";});
printf("main alarm (#9 sec) set");

setalarm (3, sub {die "main alarm (#3 sec) expired";});
printf("main alarm (#3 sec) set");

clearalarm(-1);
clearalarm (-1);
exit (0);

output:
frank@frank-desktop:~/workspace/Perl/alarm$ ./alarm3.pl
main alarm (#9 sec) set
main alarm (#3 sec) set
Use of uninitialized value in addition (+) at /usr/local/share/perl/
5.8.8/Alarm/Concurrent.pm line 249.
Use of uninitialized value in addition (+) at /usr/local/share/perl/
5.8.8/Alarm/Concurrent.pm line 245.
Use of uninitialized value in addition (+) at /usr/local/share/perl/
5.8.8/Alarm/Concurrent.pm line 245.
Use of uninitialized value in addition (+) at /usr/local/share/perl/
5.8.8/Alarm/Concurrent.pm line 249.
Alarm clock!

Eigentlich war es genau das, was ich von Alarm::Concurrent erwartet
habe:
Dass ich timer beliebig setzen kann. Also auch einen timer spàter
aufziehen, der aber früher ablaufen soll.
Anwendung: in der Lage sein, innerhalb einer library Funktion einen
alarm timer zu setzen, obwohl ausserhalb der library Funktion bereits
ein alarm timer làuft. Natürlich ist dann der timer innerhalb der
library Funktion kleiner als der "aeussere" timer.

Hab' ich Alarm::Concurrent nicht richtig benutzt?
Oder gibt es das wirklich einfach nicht her?

Gruss
Frank
 

Lesen sie die antworten

#1 Frank Bergemann
20/08/2008 - 16:05 | Warnen spam
Hi,

i guess i found it.
I opened a bug report for this:
http://rt.cpan.org/Public/Bug/Display.html?id8608

rgds
Frank

Ähnliche fragen