-/* $Id$
-
-This file is part of libmspcore
-Copyright © 2006-2008 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
#ifdef WIN32
#include <windows.h>
#else
#include <sys/resource.h>
#include <sys/time.h>
+#include <cerrno>
#endif
+#include <msp/core/systemerror.h>
#include "datetime.h"
#include "timedelta.h"
#include "timestamp.h"
namespace Msp {
namespace Time {
-/**
-Returns the current timestamp.
-*/
TimeStamp now()
{
#ifndef WIN32
return DateTime(now()).format(fmt);
}
-/**
-Returns the CPU time used by the program so far.
-*/
TimeDelta get_cpu_time()
{
#ifndef WIN32
#endif
}
-/**
-Sleeps for the given time.
-*/
-int sleep(const TimeDelta &d)
+void sleep(const TimeDelta &d)
{
#ifndef WIN32
- timespec ts;
- d.fill_timespec(ts);
- return nanosleep(&ts, 0);
+ timespec ts = d;
+ while(nanosleep(&ts, 0)==-1)
+ if(errno!=EINTR)
+ throw system_error("nanosleep");
#else
Sleep((DWORD)(d/msec));
- return 0;
#endif
}