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);