68 lines
2.5 KiB
Markdown
68 lines
2.5 KiB
Markdown
NSPR defines a platform-dependent type, {ref}`PRIntervalTime`, for timing
|
|
intervals of fewer than approximately 6 hours. This chapter describes
|
|
{ref}`PRIntervalTime` and the functions that allow you to use it for timing
|
|
purposes:
|
|
|
|
- [Interval Time Type and
|
|
Constants](#Interval_Time_Type_and_Constants)
|
|
- [Interval Functions](#Interval_Functions)
|
|
|
|
(interval-time-type-and-constants)=
|
|
|
|
# Interval Time Type and Constants
|
|
|
|
All timed functions in NSPR require a parameter that depicts the amount
|
|
of time allowed to elapse before the operation is declared failed. The
|
|
type of such arguments is {ref}`PRIntervalTime`. Such parameters are common
|
|
in NSPR functions such as those used for I/O operations and operations
|
|
on condition variables.
|
|
|
|
NSPR 2.0 provides interval times that are efficient in terms of
|
|
performance and storage requirements. Conceptually, they are based on
|
|
free-running counters that increment at a fixed rate without possibility
|
|
of outside influence (as might be observed if one was using a
|
|
time-of-day clock that gets reset due to some administrative action).
|
|
The counters have no fixed epoch and have a finite period. To make use
|
|
of these counters, the application must declare a point in time, the
|
|
epoch, and an amount of time elapsed since that **epoch**, the
|
|
**interval**. In almost all cases the epoch is defined as the value of
|
|
the interval timer at the time it was sampled.
|
|
|
|
> - {ref}`PRIntervalTime`
|
|
|
|
(interval-functions)=
|
|
|
|
# Interval Functions
|
|
|
|
Interval timing functions are divided into three groups:
|
|
|
|
- [Getting the Current Interval and Ticks Per
|
|
Second](#Getting_the_Current_Interval_and_Ticks_Per_Second)
|
|
- [Converting Standard Clock Units to Platform-Dependent
|
|
Intervals](#Converting_Standard_Clock_Units_to_Platform-Dependent_Intervals)
|
|
- [Converting Platform-Dependent Intervals to Standard Clock
|
|
Units](#Converting_Platform-Dependent_Intervals_to_Standard_Clock_Units)
|
|
|
|
(getting-the-current-interval-and-ticks-per-second)=
|
|
|
|
## Getting the Current Interval and Ticks Per Second
|
|
|
|
> - {ref}`PR_IntervalNow`
|
|
> - {ref}`PR_TicksPerSecond`
|
|
|
|
(converting-standard-clock-units-to-platform-dependent-intervals)=
|
|
|
|
## Converting Standard Clock Units to Platform-Dependent Intervals
|
|
|
|
> - {ref}`PR_SecondsToInterval`
|
|
> - {ref}`PR_MillisecondsToInterval`
|
|
> - {ref}`PR_MicrosecondsToInterval`
|
|
|
|
(converting-platform-dependent-intervals-to-standard-clock-units)=
|
|
|
|
## Converting Platform-Dependent Intervals to Standard Clock Units
|
|
|
|
> - {ref}`PR_IntervalToSeconds`
|
|
> - {ref}`PR_IntervalToMilliseconds`
|
|
> - {ref}`PR_IntervalToMicroseconds`
|