]> git.tdb.fi Git - libs/core.git/blobdiff - source/time/utils.cpp
Make Time::sleep void
[libs/core.git] / source / time / utils.cpp
index 1d0b8d0ec93d9d1fc08fa5041099ba34349d5d81..7da0aede047aab2e9f2a839005879a61f187df78 100644 (file)
@@ -1,16 +1,11 @@
-/* $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"
@@ -78,15 +73,15 @@ TimeDelta get_cpu_time()
 /**
 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
 }