- unstable 0~svn197-4
|dispatch_time(3)||Library Functions Manual||dispatch_time(3)|
Calculate temporal milestones
static const dispatch_time_t DISPATCH_TIME_NOW =
static const dispatch_time_t DISPATCH_TIME_FOREVER = ~0ull;
base, int64_t offset);
*base, int64_t offset);
dispatch_walltime() functions provide a simple
mechanism for expressing temporal milestones for use with dispatch functions
that need timeouts or operate on a schedule.
The dispatch_time_t type is a semi-opaque integer, with only the special values DISPATCH_TIME_NOW and DISPATCH_TIME_FOREVER being externally defined. All other values are represented using an internal format that is not safe for integer arithmetic or comparison. The internal format is subject to change.
function returns a milestone relative to an existing milestone after adding
offset nanoseconds. If the base
parameter maps internally to a wall clock, then the returned value is
relative to the wall clock. Otherwise, if base is
DISPATCH_TIME_NOW, then the the current time of the
default host clock is used.
function is useful for creating a milestone relative to a fixed point in
time using the wall clock, as specified by the optional
base parameter. If base is NULL,
then the current time of the wall clock is used.
dispatch_walltime() functions detect overflow and
underflow conditions when applying the offset
Overflow causes DISPATCH_TIME_FOREVER to be returned. When base is DISPATCH_TIME_FOREVER, then the offset parameter is ignored.
Underflow causes the smallest representable value to be returned for a given clock.
Create a milestone two seconds in the future:
milestone = dispatch_time(DISPATCH_TIME_NOW, 2LL * NSEC_PER_SEC);
Create a milestone for use as an infinite timeout:
milestone = DISPATCH_TIME_FOREVER;
Create a milestone on Tuesday, January 19, 2038:
struct timespec ts; ts.tv_sec = 0x7FFFFFFF; ts.tv_nsec = 0; milestone = dispatch_walltime(&ts, 0);
|May 1, 2009||Darwin|