|
@@ -257,9 +257,11 @@ OS::TimeZoneInfo OS_Unix::get_time_zone_info() const {
|
|
|
}
|
|
|
|
|
|
void OS_Unix::delay_usec(uint32_t p_usec) const {
|
|
|
-
|
|
|
- struct timespec rem = { static_cast<time_t>(p_usec / 1000000), (static_cast<long>(p_usec) % 1000000) * 1000 };
|
|
|
- while (nanosleep(&rem, &rem) == EINTR) {
|
|
|
+ struct timespec requested = { static_cast<time_t>(p_usec / 1000000), (static_cast<long>(p_usec) % 1000000) * 1000 };
|
|
|
+ struct timespec remaining;
|
|
|
+ while (nanosleep(&requested, &remaining) == -1 && errno == EINTR) {
|
|
|
+ requested.tv_sec = remaining.tv_sec;
|
|
|
+ requested.tv_nsec = remaining.tv_nsec;
|
|
|
}
|
|
|
}
|
|
|
uint64_t OS_Unix::get_ticks_usec() const {
|