I'm trying to instrument my events to catch extremely long-running
events (infinite loops, database table locks, etc.).  What I'd like to
do is have a timer (say, 30 seconds) in place inside Event.pm.  In
pseudocode:

 # Ready to handle next event.

 local($SIG{ALRM}) = sub { 
   $elapsed += time() - $time;
   printf "In event %s, #%d, elapsed %f",
     $event->{desc}, $event->{count}, $elapsed;
   $time = time();
 } 

 alarm(30);
 $event->cb();
 alarm(0);

(The "count" is so I can distinguish between different occurrences of
the same event.)

Are there any "gotchas" I should watch for? I've not made any attempt
previously to alter the Event.pm code. 
 
-- 
Jeff Boes                                      vox 269.226.9550 ext 24
Database Engineer                                     fax 269.349.9076
Nexcerpt, Inc.                                 http://www.nexcerpt.com
           ...Nexcerpt... Extend your Expertise

Reply via email to