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
This commit is contained in:
Tanu Kaskinen 2017-01-23 10:38:59 +02:00
parent a50030b697
commit 5e1bb023a2

View file

@ -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);