/* Copyright (c) 2009-2012 250bpm s.r.o. Copyright (c) 2007-2009 iMatix Corporation Copyright (c) 2007-2011 Other contributors as noted in the AUTHORS file This file is part of Crossroads project. Crossroads is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. Crossroads is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include "platform.hpp" #include "../include/xs_utils.h" #include #include "stdint.hpp" #include "clock.hpp" #include "err.hpp" #if !defined XS_HAVE_WINDOWS #include #else #include "windows.hpp" #endif void xs_sleep (int seconds_) { #if defined XS_HAVE_WINDOWS Sleep (seconds_ * 1000); #else sleep (seconds_); #endif } 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); }