Skip to content

Instantly share code, notes, and snippets.

@Ancurio
Last active August 29, 2015 14:02
Show Gist options
  • Select an option

  • Save Ancurio/ae83d3bacc7991e5ca5b to your computer and use it in GitHub Desktop.

Select an option

Save Ancurio/ae83d3bacc7991e5ca5b to your computer and use it in GitHub Desktop.
diff --git a/src/graphics.cpp b/src/graphics.cpp
index 01e80c7..43542be 100644
--- a/src/graphics.cpp
+++ b/src/graphics.cpp
@@ -34,6 +34,7 @@
#include "etc-internal.h"
#include "binding.h"
#include "perftimer.h"
+#include "debugwriter.h"
#include <SDL_video.h>
#include <SDL_timer.h>
@@ -41,6 +42,7 @@
#include <time.h>
#include <sys/time.h>
+#include <errno.h>
#include <algorithm>
struct PingPong
@@ -342,8 +344,19 @@ private:
struct timespec req;
req.tv_sec = 0;
req.tv_nsec = ticks / tickFreqNS;
+
while (nanosleep(&req, &req) == -1)
- ;
+ {
+ if (errno != EINTR)
+ {
+ Debug() << "nanosleep failed for ticks =" << ticks;
+ errno = 0;
+
+ break;
+ }
+
+ errno = 0;
+ }
#else
SDL_Delay(ticks / tickFreqMS);
#endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment