what are we using fork for, out of curiosity?  It seems pretty hard to make
this work.  Logging isn’t the only thing in the program that might be
holding a mutex, so it seems like this could still happen.

Seems like mixing fork and mutexes is just a fundamentally bad idea, unless
I’m missing something (which i very well could be)

On Sun, Oct 15, 2017 at 3:15 PM Pavel Labath <lab...@google.com> wrote:

> On 15 October 2017 at 23:04, Zachary Turner <ztur...@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.
>
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to