[ctime]解决clock_gettime计算出来的nsec超过1sec的问题
This commit is contained in:
parent
1638241297
commit
e88a19467e
|
@ -677,8 +677,13 @@ int clock_gettime(clockid_t clockid, struct timespec *tp)
|
|||
level = rt_hw_interrupt_disable();
|
||||
tick = rt_tick_get(); /* get tick */
|
||||
tp->tv_sec = _timevalue.tv_sec + tick / RT_TICK_PER_SECOND;
|
||||
tp->tv_nsec = (_timevalue.tv_usec + (tick % RT_TICK_PER_SECOND) * MICROSECOND_PER_TICK) * 1000;
|
||||
tp->tv_nsec = (_timevalue.tv_usec + (tick % RT_TICK_PER_SECOND) * MICROSECOND_PER_TICK) * 1000U;
|
||||
rt_hw_interrupt_enable(level);
|
||||
if (tp->tv_nsec > 1000000000ULL)
|
||||
{
|
||||
tp->tv_nsec %= 1000000000ULL;
|
||||
tp->tv_sec += 1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue