sub uninterruptible_sleep { my ($dur) = @_; my $until = time() + $dur; while (1) { $dur = $until - time(); last if $dur <= 0; sleep($dur); } return 1; }