--- projects/cms/source/host/ihost-perl/ihost.pl 2001/01/29 09:19:16 1.8 +++ projects/cms/source/host/ihost-perl/ihost.pl 2001/01/29 16:51:50 1.9 @@ -9,7 +9,7 @@ # - pjm2@ukc.ac.uk # # $Author: pjm2 $ -# $Id: ihost.pl,v 1.8 2001/01/29 09:19:16 pjm2 Exp $ +# $Id: ihost.pl,v 1.9 2001/01/29 16:51:50 pjm2 Exp $ #------------------------------------------------------------ $| = 1; @@ -48,15 +48,25 @@ $seq_no = 1; $last_udp_time = time; $last_tcp_time = time; while (1) { - if (time >= $last_udp_time + $udp_update_time) { + my($time) = time; + if ($time >= $last_udp_time + $udp_update_time) { &send_udp_packet(); - $last_udp_time = time; + $last_udp_time = $time; } - if (time >= $last_tcp_time + $tcp_update_time) { + if ($time >= $last_tcp_time + $tcp_update_time) { &send_tcp_heartbeat(); - $last_tcp_time = time; + $last_tcp_time = $time; } - `sleep 1`; + my($next_udp) = $udp_update_time - $time + $last_udp_time; + my($next_tcp) = $tcp_update_time - $time + $last_tcp_time; + my($delay); + if ($next_udp < $next_tcp) { + $delay = $next_udp + } + else { + $delay = $next_tcp; + } + `sleep $delay`; } exit(0);