[vlc-devel] commit: mtime: Make nanosleep a bit more cancelable than what it is on osx. (Pierre d'Herbemont )

git version control git at videolan.org
Sat Sep 20 20:04:38 CEST 2008


vlc | branch: master | Pierre d'Herbemont <pdherbemont at videolan.org> | Sat Sep 20 20:03:46 2008 +0200| [e1cb28a3a913418ac845c622e0d1647ed0d24d39] | committer: Pierre d'Herbemont 

mtime: Make nanosleep a bit more cancelable than what it is on osx.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e1cb28a3a913418ac845c622e0d1647ed0d24d39
---

 src/misc/mtime.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/src/misc/mtime.c b/src/misc/mtime.c
index 8bf6925..c9248ae 100644
--- a/src/misc/mtime.c
+++ b/src/misc/mtime.c
@@ -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.
  *




More information about the vlc-devel mailing list