[pulseaudio-commits] src/tests

Tanu Kaskinen tanuk at kemper.freedesktop.org
Thu Jan 26 06:06:49 UTC 2017


 src/tests/thread-test.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

New commits:
commit 5e1bb023a26ec0486ce6766283caa02a2e18b319
Author: Tanu Kaskinen <tanuk at iki.fi>
Date:   Mon Jan 23 10:38:59 2017 +0200

    thread-test: fix deadlock
    
    If we set magic_number to zero, the code will deadlock, because the
    thread that is waiting for us to set magic_number to non-zero will
    never progress.
    
    The problem was reported here:
    https://lists.freedesktop.org/archives/pulseaudio-discuss/2017-January/027368.html

diff --git a/src/tests/thread-test.c b/src/tests/thread-test.c
index 72f2177..0c83e67 100644
--- a/src/tests/thread-test.c
+++ b/src/tests/thread-test.c
@@ -115,7 +115,10 @@ START_TEST (thread_test) {
     for (k = 0; k < 100; k++) {
         pa_assert(magic_number == 0);
 
-        magic_number = (int) rand() % 0x10000;
+        /* There's a thread waiting for us to change magic_number to a non-zero
+         * value. The "+ 1" part ensures that we don't accidentally set
+         * magic_number to zero here. */
+        magic_number = (int) rand() % 0x10000 + 1;
 
         pa_log_info("iteration %i (%i)", k, magic_number);
 



More information about the pulseaudio-commits mailing list