Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
ZCLOCK(3)			   CZMQ Manual			       ZCLOCK(3)

NAME
     zclock - Class for millisecond clocks and delays

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

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
     From zclock_test method.

	 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

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

RESOURCES
     Main web site:

     Report bugs to the email <zeromq-dev@lists.zeromq.org[1]>

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 Li-
     cense, 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.

NOTES
      1. zeromq-dev@lists.zeromq.org
	 mailto:zeromq-dev@lists.zeromq.org

CZMQ 4.2.1			   08/27/2026			       ZCLOCK(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=zclock&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help