[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#59055: [PATCH] Fix possible deadlock.
From: |
Ludovic Courtès |
Subject: |
bug#59055: [PATCH] Fix possible deadlock. |
Date: |
Sun, 20 Nov 2022 18:19:07 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) |
Hi,
Olivier Dion <olivier.dion@polymtl.ca> skribis:
> If we got interrupted while waiting on our condition variable, we unlock
> the kernel mutex momentarily while executing asynchronous operations
> before putting us back into the waiting queue.
>
> However, we have to retry acquiring the mutex before getting back into
> the queue, otherwise it's possible that we wait indefinitely since
> nobody could be the owner for a while.
>
> * libguile/threads.c (lock_mutex): Try acquring the mutex after signal
> interruption.
Looks reasonable to me; applied.
Did you try to come up with a reproducer? That would be awesome but I
guess it’s hard because you need to trigger EINTR at the right point.
Thanks,
Ludo’.