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 --- src/tests/thread-test.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/tests/thread-test.c b/src/tests/thread-test.c index 72f21770e..0c83e67e0 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); -- 2.11.0