logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

zclock - Class for millisecond clocks and delays

Authors

       The czmq manual was written by the authors in the AUTHORS file.

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

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'.

See Also