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