mirror of https://gitee.com/bigwinds/arangodb
61 lines
1.7 KiB
Plaintext
61 lines
1.7 KiB
Plaintext
zclock(7)
|
|
=========
|
|
|
|
NAME
|
|
----
|
|
zclock - millisecond clocks and delays
|
|
|
|
SYNOPSIS
|
|
--------
|
|
----
|
|
// Sleep for a number of milliseconds
|
|
void
|
|
zclock_sleep (int msecs);
|
|
|
|
// Return current system clock as milliseconds
|
|
int64_t
|
|
zclock_time (void);
|
|
|
|
// Print formatted string to stdout, prefixed by date/time and
|
|
// terminated with a newline.
|
|
void
|
|
zclock_log (const char *format, ...);
|
|
|
|
// Self test of this class
|
|
int
|
|
zclock_test (Bool verbose);
|
|
----
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
|
|
The zclock class provides essential sleep and system time functions, used
|
|
to slow down threads for testing, and calculate timers for polling. Wraps
|
|
the non-portable system calls in a simple portable API.
|
|
|
|
This class contains some small surprises. Most amazing, win32 did an API
|
|
better than POSIX. The win32 Sleep() call is not only a neat 1-liner, it
|
|
also sleeps for milliseconds, whereas the POSIX call asks us to think in
|
|
terms of nanoseconds, which is insane. I've decided every single man page
|
|
for this library will say "insane" at least once. Anyhow, milliseconds
|
|
are a concept we can deal with. Seconds are too fat, nanoseconds too
|
|
tiny, but milliseconds are just right for slices of time we want to work
|
|
with at the 0MQ scale. zclock doesn't give you objects to work with, we
|
|
like the czmq class model but we're not insane. There, got it in again.
|
|
The Win32 Sleep() call defaults to 16ms resolution unless the system timer
|
|
resolution is increased with a call to timeBeginPeriod() permitting 1ms
|
|
granularity.
|
|
|
|
EXAMPLE
|
|
-------
|
|
.From zclock_test method
|
|
----
|
|
int64_t start = zclock_time ();
|
|
zclock_sleep (10);
|
|
assert ((zclock_time () - start) >= 10);
|
|
----
|
|
|
|
SEE ALSO
|
|
--------
|
|
linkczmq:czmq[7]
|