PR_IntervalNow 编辑
Returns the value of NSPR's free-running interval timer.
Syntax
#include <prinrval.h> /wiki/en-US/docs/Mozilla/Projects/NSPR/Reference/PRIntervalTime PR_IntervalNow(void);
Returns
A /wiki/en-US/docs/Mozilla/Projects/NSPR/Reference/PRIntervalTime
object.
Description
You can use the value returned by PR_IntervalNow()
to establish epochs and to determine intervals (that is, compute the difference between two times). PR_IntervalNow()
is both very efficient and nonblocking, so it is appropriate to use (for example) while holding a mutex.
The most common use for PR_IntervalNow()
is to establish an epoch and test for the expiration of intervals. In this case, you typically call PR_IntervalNow()
in a sequence that looks like this:
PRUint32 interval = ... ; // milliseconds // ... PRStatus rv; /wiki/en-US/docs/Mozilla/Projects/NSPR/Reference/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);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论