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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:52 次

字数:1856

最后编辑:8年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文