[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