]> git.sesse.net Git - vlc/commitdiff
mtime: Make nanosleep a bit more cancelable than what it is on osx.
authorPierre d'Herbemont <pdherbemont@videolan.org>
Sat, 20 Sep 2008 18:03:46 +0000 (20:03 +0200)
committerPierre d'Herbemont <pdherbemont@videolan.org>
Sat, 20 Sep 2008 18:07:42 +0000 (20:07 +0200)
src/misc/mtime.c

index 8bf69253206bc54ebe4eb1f22ef8ffed2e4a80a2..c9248ae8f585b9fe26a92ae345387cdb6be26df0 100644 (file)
@@ -366,6 +366,20 @@ void mwait( mtime_t date )
 #include "libvlc.h" /* vlc_backtrace() */
 #undef msleep
 
+#if defined(__APPLE__) && defined( HAVE_NANOSLEEP )
+/* Mac OS X 10.5's nanosleep is not a cancellation point */
+static inline int
+semi_testcancelable_nanosleep(const struct timespec *rqtp, struct timespec *rmtp)
+{
+    int ret;
+    pthread_testcancel();
+    ret = nanosleep(rqtp, rmtp);
+    pthread_testcancel();
+    return ret;
+}
+#define nanosleep semi_testcancelable_nanosleep
+#endif
+
 /**
  * Portable usleep(). Cancellation point.
  *