home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / languages / perl / scripts-osu / alarm / ttimer < prev   
Encoding:
Text File  |  1990-10-31  |  624 b   |  39 lines

  1. #!/usr/bin/perl
  2.  
  3. require 'itimers.pl';
  4. require 'ctime.pl';
  5.  
  6. $| = 1;
  7.  
  8. $SIG{'ALRM'} = 'bingo';
  9.  
  10. sub bingo {
  11.     print "ALARM  @ ", &ctime(time);
  12.     $hit++;
  13.  
  14. print "alarm 7 @ ", &ctime(time);
  15.  
  16. do alarm(7);
  17.  
  18. print "sleeping 2 seconds... ";
  19.  
  20. sleep 2;
  21.  
  22. printf "alarm had %g secs left\n", &alarm(0);
  23.  
  24. print "resetting to 1.25 seconds\n";
  25.  
  26. &alarm(1.25);
  27.  
  28. do { &timeleft; } until $hit; 
  29.  
  30. print "escaped at \n\t", &ctime(time);
  31.  
  32. sub timeleft {
  33.     local($timeleft);
  34.     &getitimer(&ITIMER_REAL, $timeleft) || die "can't getitimer: $!";
  35.     ($x, $y, $s, $u) = &itimer($timeleft);
  36.     printf("timeleft is %g\n", $s + ($u / 1e6));
  37. }
  38.