1
0
Fork 0
arangodb/3rdParty/czmq-1.1.0/doc/zclock.txt

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]