From: Mike Brady <4265913+mikebrady@users.noreply.github.com> Date: Fri, 30 Apr 2021 09:12:59 +0000 (+0100) Subject: move over to clock_realtime from clock_monotonic. Seems to work. X-Git-Tag: 4.0-dev~81 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b3cec5c690bdfbc54f9486a5c4f13023eb914f09;p=thirdparty%2Fshairport-sync.git move over to clock_realtime from clock_monotonic. Seems to work. --- diff --git a/activity_monitor.c b/activity_monitor.c index 735fd03a..5d178e5d 100644 --- a/activity_monitor.c +++ b/activity_monitor.c @@ -153,18 +153,7 @@ void *activity_monitor_thread_code(void *arg) { if (rc) die("activity_monitor: error %d initialising activity_monitor_mutex.", rc); -// set the flowcontrol condition variable to wait on a monotonic clock -#ifdef COMPILE_FOR_LINUX_AND_FREEBSD_AND_CYGWIN_AND_OPENBSD - pthread_condattr_t attr; - pthread_condattr_init(&attr); - pthread_condattr_setclock(&attr, CLOCK_MONOTONIC); // can't do this in OS X, and don't need it. - rc = pthread_cond_init(&activity_monitor_cv, &attr); - pthread_condattr_destroy(&attr); - -#endif -#ifdef COMPILE_FOR_OSX rc = pthread_cond_init(&activity_monitor_cv, NULL); -#endif if (rc) die("activity_monitor: error %d initialising activity_monitor_cv."); pthread_cleanup_push(activity_thread_cleanup_handler, arg); diff --git a/common.c b/common.c index 0fe331da..9c9e6ccf 100644 --- a/common.c +++ b/common.c @@ -1250,7 +1250,8 @@ uint64_t get_absolute_time_in_ns() { #ifdef COMPILE_FOR_LINUX_AND_FREEBSD_AND_CYGWIN_AND_OPENBSD struct timespec tn; // can't use CLOCK_MONOTONIC_RAW as it's not implemented in OpenWrt - clock_gettime(CLOCK_MONOTONIC, &tn); + // CLOCK_REALTIME because PTP uses it. + clock_gettime(CLOCK_REALTIME, &tn); uint64_t tnnsec = tn.tv_sec; tnnsec = tnnsec * 1000000000; uint64_t tnjnsec = tn.tv_nsec; diff --git a/dacp.c b/dacp.c index 0230ac1c..54d1e4c0 100644 --- a/dacp.c +++ b/dacp.c @@ -936,18 +936,9 @@ void *dacp_monitor_thread_code(__attribute__((unused)) void *na) { void dacp_monitor_start() { int rc; -#ifdef COMPILE_FOR_LINUX_AND_FREEBSD_AND_CYGWIN_AND_OPENBSD - pthread_condattr_t attr; - pthread_condattr_init(&attr); - pthread_condattr_setclock(&attr, CLOCK_MONOTONIC); // can't do this in OS X, and don't need it. - rc = pthread_cond_init(&dacp_server_information_cv, &attr); + rc = pthread_cond_init(&dacp_server_information_cv, NULL); if (rc) debug(1, "Error initialising the DACP Server Information Condition Variable"); - pthread_condattr_destroy(&attr); -#endif -#ifdef COMPILE_FOR_OSX - rc = pthread_cond_init(&dacp_server_information_cv, NULL); -#endif pthread_mutexattr_t mta; diff --git a/rtsp.c b/rtsp.c index 8be05db0..dbe1f795 100644 --- a/rtsp.c +++ b/rtsp.c @@ -2662,16 +2662,7 @@ static void *rtsp_conversation_thread_func(void *pconn) { rc = pthread_mutex_init(&conn->ab_mutex, NULL); if (rc) die("Connection %d: error %d initialising ab_mutex.", conn->connection_number, rc); -// set the flowcontrol condition variable to wait on a monotonic clock -#ifdef COMPILE_FOR_LINUX_AND_FREEBSD_AND_CYGWIN_AND_OPENBSD - pthread_condattr_t attr; - pthread_condattr_init(&attr); - pthread_condattr_setclock(&attr, CLOCK_MONOTONIC); // can't do this in OS X, and don't need it. - rc = pthread_cond_init(&conn->flowcontrol, &attr); -#endif -#ifdef COMPILE_FOR_OSX rc = pthread_cond_init(&conn->flowcontrol, NULL); -#endif if (rc) die("Connection %d: error %d initialising flow control condition variable.", conn->connection_number, rc);