-/* $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"
/**
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
}