[Lldb-commits] [PATCH] D38938: Logging: provide a way to safely disable logging in a forked process
Pavel Labath via lldb-commits
lldb-commits at lists.llvm.org
Sun Oct 15 15:14:51 PDT 2017
On 15 October 2017 at 23:04, Zachary Turner <zturner at google.com> wrote:
> Doesn’t DisableAllLogChannels acquire a scoped lock? If so wouldn’t it just
> release at the end of the function?
The thing is, it is unable to acquire the lock in the first place,
because the mutex is already "locked". So, the sequence of events is
process 1, thread 1: acquire lock
process 1, thread 2: fork(), process 2 is created
process 1 thread 1: release lock
everything goes well from now on in process 1...
process 2, thread one (and only). acquire lock:
BANG.
Process 2 is deadlocked because there is noone to release the lock there.
More information about the lldb-commits
mailing list