]> git.ipfire.org Git - thirdparty/shairport-sync.git/commitdiff
move over to clock_realtime from clock_monotonic. Seems to work.
authorMike Brady <4265913+mikebrady@users.noreply.github.com>
Fri, 30 Apr 2021 09:12:59 +0000 (10:12 +0100)
committerMike Brady <4265913+mikebrady@users.noreply.github.com>
Fri, 30 Apr 2021 09:12:59 +0000 (10:12 +0100)
activity_monitor.c
common.c
dacp.c
rtsp.c

index 735fd03ad97f6c034ae19911615a1887be564ee8..5d178e5dacf16c8e20c7734a2770fb185cdbb127 100644 (file)
@@ -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);
index 0fe331da42c42e4342ac7fb443263894a674272e..9c9e6ccfcb9d2181023c4f2e9a6dc8cc056af501 100644 (file)
--- 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 0230ac1cc0c14d04cbaa8b2cb8bd93c181f832b1..54d1e4c0f27a8db65913449c1e95842d9f46f7a1 100644 (file)
--- 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 8be05db08327bfb433f8d7dfe39563a3d235f89e..dbe1f7954449515ecbe887d383c7d145671f3352 100644 (file)
--- 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);