[PATCH] thread-test: fix deadlock

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2017-01-23 13:38 GMT+05:00 Tanu Kaskinen <tanuk at iki.fi>:
> 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(-)

I have looked at the fix and believe that it's correct.

>
> 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
>
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss



-- 
Alexander E. Patrakov


[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux