Revert "mainloop: fix timeout assignment in pa_mainloop_prepare"
authorArun Raghavan <arun@asymptotic.io>
Mon, 23 Nov 2020 17:56:41 +0000 (12:56 -0500)
committerArun Raghavan <arun@arunraghavan.net>
Mon, 23 Nov 2020 18:05:27 +0000 (18:05 +0000)
This reverts commit 6b1719d0ed100ce5a65f28c3c4d4f3b59f3f56a0, as it
inadvertently broke the semantics of timeout in the API.

Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1039

src/pulse/mainloop.c
src/pulse/mainloop.h

index 0cb4af3..355935e 100644 (file)
@@ -799,10 +799,8 @@ int pa_mainloop_prepare(pa_mainloop *m, int timeout) {
 
         m->prepared_timeout = calc_next_timeout(m);
         if (timeout >= 0) {
-            uint64_t u = (uint64_t) timeout * PA_USEC_PER_MSEC;
-
-            if (u < m->prepared_timeout || m->prepared_timeout == PA_USEC_INVALID)
-                m->prepared_timeout = u;
+            if (timeout < m->prepared_timeout || m->prepared_timeout == PA_USEC_INVALID)
+                m->prepared_timeout = timeout;
         }
     }
 
index 5f8c626..f1069da 100644 (file)
@@ -85,7 +85,7 @@ void pa_mainloop_free(pa_mainloop* m);
 
 /** Prepare for a single iteration of the main loop. Returns a negative value
 on error or exit request. timeout specifies a maximum timeout for the subsequent
-poll, or -1 for blocking behaviour. .*/
+poll, or -1 for blocking behaviour. The timeout is specified in microseconds. */
 int pa_mainloop_prepare(pa_mainloop *m, int timeout);
 
 /** Execute the previously prepared poll. Returns a negative value on error.*/