https://github.com/jasonmolenda approved this pull request.

It took me a minute to understand how you were handling the locking of the 
dependent file list while iterating across it, but now I see it.  You grab the 
lock at the beginning of the outer loop, then enqueue all of the 
not-yet-processed dependent binaries into asynchronous threads.  They are all 
creating the Modules and then blocking to acquire the lock, to add their 
entries to the dependent files list.  The inner loop finishes distributing 
things to the thread pool, releases its lock, and waits for all the 
just-started async jobs to complete.  Then we are back in the outer loop which 
reads the size of the dependent file list.

https://github.com/llvm/llvm-project/pull/114507
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to