Skip to content

ThomasHabets/monotonic_clock

Repository files navigation

monotonic_clock/README

  By Thomas Habets <thomas@habets.se> 2010


What
----
Provides access to a clock that always increases at the same rate.
Unlike the system time (e.g. gettimeofday()) this will never decrease.

However, if there's no monotonic clock on your system then this library
will fall back to gettimeofday().

For more information see:
https://blog.habets.se/2010/09/gettimeofday-should-never-be-used-to-measure-time.html


Portability
-----------
Verified to be working:

Linux        clock_gettime()
OpenBSD      clock_gettime()
Solaris      clock_gettime()
MacOS X      mach_absolute_time()


Using monotonic_clock in a project
----------------------------------
You can either install it like a normal shared library:

```
./configure
make
sudo make install
```

Or import it into your project as a git submodule:

```
cd /path/to/project
git submodule add https://github.com/ThomasHabets/monotonic_clock.git
git submodule init
git submodule update
```

Add to configure.ac:
```
  AC_CONFIG_SUBDIRS([monotonic_clock])
  AC_SEARCH_LIBS([clock_gettime], [rt])
```

Add to Makefile.am:
```
  SUBDIRS=monotonic_clock
  AM_CFLAGS=-I$(top_builddir)/monotonic_clock/include @AM_CFLAGS@
  myproghere_LDADD=$(top_builddir)/monotonic_clock/.libs/libmonotonic_clock.a
```

--------------------------------------------------------------------------
Send questions/suggestions/patches/rants/0days to synscan@googlegroups.com