From e460315b806fa6a59d65dc5348352b7f5f1e6d9c Mon Sep 17 00:00:00 2001 From: Jed Reynolds Date: Tue, 11 Feb 2020 14:30:03 -0800 Subject: [PATCH] LANforge/Utils adds sleep_ms() sleep_sec() functions that use select() --- LANforge/Utils.pm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/LANforge/Utils.pm b/LANforge/Utils.pm index 950232cc..7f449e77 100644 --- a/LANforge/Utils.pm +++ b/LANforge/Utils.pm @@ -349,6 +349,42 @@ sub fmt_cmd { return $rv; } +## +## Check if usleep() exists +## +our $has_usleep = 0; +if (defined &usleep) { + print("I see usleep\n"); + $LANforge::Utils::has_usleep=1; +} + + +sub sleep_ms { + my ($millis) = @_; + return if (!(defined $millis) || ($millis == 0)); + + my $secs = $millis / 1000; + + if ($LANforge::Utils::has_usleep) { + usleep($millis); + } + else { + select(undef, undef, undef, $secs); + } +} +sub sleep_sec { + my ($secs) = @_; + return if (!(defined $secs) || ($secs == 0)); + + if ($LANforge::Utils::has_usleep) { + usleep($secs); + } + else { + select(undef, undef, undef, $secs); + } +} + + 1; # So the require or use succeeds (perl stuff) __END__