in reply to Re^2: Setting a timer to a system call
in thread Setting a timer to a system call
#!/usr/bin/perl -w use strict; use threads; use threads::shared; my $timer_go:shared = 0; my $worker = threads->create(\&worker); my $timer = threads->create(\&timer,$worker); print "hit enter to start\n"; <>; $timer_go=1; <>; $timer->join(); $worker->join(); sub timer { my $worker = shift; while(1){ if($timer_go){ my $count = 0; while(1){ $count++; if($count > 5){ print "timed out\nHit enter to finish\n"; # Send a signal to a thread $worker->kill('INT'); return; } sleep 1; print "timing $count\n"; } }else{sleep 1} } } sub worker { $|++; $SIG{INT} = sub{ warn "Caught Zap!\n"; sleep 1; exit; }; # do your timed program here. my $worker_pid = open( READ, "top -d 1 -b |" ); print "\t$worker_pid\n"; while(<READ>){ } return; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Setting a timer to a system call
by Freezer (Sexton) on Aug 17, 2012 at 13:07 UTC | |
by zentara (Cardinal) on Aug 18, 2012 at 08:39 UTC | |
|
Re^4: Setting a timer to a system call
by Freezer (Sexton) on Aug 17, 2012 at 14:20 UTC | |
|
Re^4: Setting a timer to a system call
by Freezer (Sexton) on Aug 17, 2012 at 13:47 UTC | |
by zentara (Cardinal) on Aug 18, 2012 at 08:42 UTC |