From e1cb28a3a913418ac845c622e0d1647ed0d24d39 Mon Sep 17 00:00:00 2001 From: Pierre d'Herbemont Date: Sat, 20 Sep 2008 20:03:46 +0200 Subject: [PATCH] mtime: Make nanosleep a bit more cancelable than what it is on osx. --- src/misc/mtime.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/misc/mtime.c b/src/misc/mtime.c index 8bf6925320..c9248ae8f5 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. * -- 2.39.2