zclock - Class for millisecond clocks and delays
Contents
Copyright
Copyright (c) the Contributors as noted in the AUTHORS file. This file is part of CZMQ, the high-level C
binding for 0MQ: http://czmq.zeromq.org. This Source Code Form is subject to the terms of the Mozilla
Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at
http://mozilla.org/MPL/2.0/. LICENSE included with the czmq distribution.
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.
The Win32 Sleep() call defaults to 16ms resolution unless the system timer resolution is increased with a
call to timeBeginPeriod() permitting 1ms granularity.
Example
Fromzclock_testmethod.
int64_t start = zclock_time ();
zclock_sleep (10);
assert ((zclock_time () - start) >= 10);
start = zclock_mono ();
int64_t usecs = zclock_usecs ();
zclock_sleep (10);
assert ((zclock_mono () - start) >= 10);
assert ((zclock_usecs () - usecs) >= 10000);
char *timestr = zclock_timestr ();
if (verbose)
puts (timestr);
freen (timestr);
#if defined (__WINDOWS__)
zsys_shutdown();
#endif
Name
zclock - Class for millisecond clocks and delays
Notes
1. zeromq-dev@lists.zeromq.orgmailto:zeromq-dev@lists.zeromq.org
CZMQ 4.2.1 05/24/2024 ZCLOCK(3)
Resources
Main web site:
Report bugs to the email <zeromq-dev@lists.zeromq.org[1]>
Synopsis
// This is a stable class, and may not change except for emergencies. It
// is provided in stable builds.
// Sleep for a number of milliseconds
CZMQ_EXPORT void
zclock_sleep (int msecs);
// Return current system clock as milliseconds. Note that this clock can
// jump backwards (if the system clock is changed) so is unsafe to use for
// timers and time offsets. Use zclock_mono for that instead.
CZMQ_EXPORT int64_t
zclock_time (void);
// Return current monotonic clock in milliseconds. Use this when you compute
// time offsets. The monotonic clock is not affected by system changes and
// so will never be reset backwards, unlike a system clock.
CZMQ_EXPORT int64_t
zclock_mono (void);
// Return current monotonic clock in microseconds. Use this when you compute
// time offsets. The monotonic clock is not affected by system changes and
// so will never be reset backwards, unlike a system clock.
CZMQ_EXPORT int64_t
zclock_usecs (void);
// Return formatted date/time as fresh string. Free using zstr_free().
// Caller owns return value and must destroy it when done.
CZMQ_EXPORT char *
zclock_timestr (void);
// Self test of this class.
CZMQ_EXPORT void
zclock_test (bool verbose);
Please add '@interface' section in './../src/zclock.c'.
