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

FreeBSD Manual Pages

  
 
  

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

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

CZMQ 4.2.1			  11/01/2025			     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.0>

home | help