Bug 979566 - Profiler: Convert usleep to nanosleep. r=bgirard

This commit is contained in:
Viktor Stanchev 2014-03-07 15:43:34 -05:00
Родитель 52f714008a
Коммит 61ed9edf45
1 изменённых файлов: 12 добавлений и 1 удалений

Просмотреть файл

@ -588,8 +588,19 @@ void TickSample::PopulateContext(void* aContext)
}
}
// WARNING: Works with values up to 1 second
void OS::SleepMicro(int microseconds)
{
usleep(microseconds);
struct timespec ts;
ts.tv_sec = 0;
ts.tv_nsec = microseconds * 1000UL;
while (true) {
// in the case of interrupt we keep waiting
// nanosleep puts the remaining to back into ts
if (!nanosleep(&ts, &ts) || errno != EINTR) {
return;
}
}
}