PR_IntervalNow¶
返回 NSPR 的自由运行间隔计时器的值。
语法¶
#include <prinrval.h>
PRIntervalTime PR_IntervalNow(void);
返回值¶
一个 PRIntervalTime 对象。
描述¶
您可以使用 PR_IntervalNow()
返回的值来建立纪元并确定间隔(即计算两个时间之间的差值)。PR_IntervalNow()
非常高效且非阻塞,因此适合在持有互斥锁时使用(例如)。
PR_IntervalNow()
最常见的用途是建立纪元并测试间隔是否过期。在这种情况下,您通常按以下顺序调用 PR_IntervalNow()
PRUint32 interval = ... ; // milliseconds
// ...
PRStatus rv;
PRIntervalTime epoch = PR_IntervalNow();
PR_Lock(data->mutex);
while (!EvaluateData(data)) /* wait until condition is met */
{
PRUint32 delta = PR_IntervalToMilliseconds(PR_IntervalNow() - epoch);
if (delta > interval) break; /* timeout */
rv = PR_Wait(data->condition, PR_MillisecondsToInterval(interval - delta));
if (PR_FAILURE == rv) break; /* likely an interrupt */
}
PR_Unlock(data->mutex);