diff options
author | Martin Sustrik <sustrik@250bpm.com> | 2012-03-13 12:40:58 +0100 |
---|---|---|
committer | Martin Sustrik <sustrik@250bpm.com> | 2012-03-13 12:40:58 +0100 |
commit | 4a444c0bfca2ef61de6f22cee79104990493c9ae (patch) | |
tree | 8d14c1eafb44d0d214d818863e861824447e31f5 /src/xs.cpp | |
parent | ecfd971cd3321f41a53e03e937fc3f12732b9019 (diff) | |
parent | 67c0bc5092cde58fc33205a29ccad6b8230104db (diff) |
Merge branch 'for-sustrik' of git.lucina.net:libxs
Diffstat (limited to 'src/xs.cpp')
-rw-r--r-- | src/xs.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -37,6 +37,7 @@ #include "config.hpp" #include "likely.hpp" #include "upoll.hpp" +#include "clock.hpp" #include "ctx.hpp" #include "err.hpp" #include "msg.hpp" @@ -356,4 +357,24 @@ int xs_errno () return errno; } +// The following utility functions are exported for use from language bindings +// in performance tests, for the purpose of consistent results in such tests. +// They are not considered part of the core XS API per se, use at your own +// risk! + +void *xs_stopwatch_start () +{ + uint64_t *watch = (uint64_t*) malloc (sizeof (uint64_t)); + alloc_assert (watch); + *watch = xs::clock_t::now_us (); + return (void*) watch; +} + +unsigned long xs_stopwatch_stop (void *watch_) +{ + uint64_t end = xs::clock_t::now_us (); + uint64_t start = *(uint64_t*) watch_; + free (watch_); + return (unsigned long) (end - start); +} |