Release the background parser lock while creating parse jobs.
This fixes a deadlock due to lock order inversion. We often elsewhere access the background parser while holding the DUChain lock. Here, we used to lock the background parser and then potentially locked the DUChain. This was desastrous. The patch here now unlocks the background parser while creating the parse job, and relocks it again to insert the job into its internal data structurs. Because the background parser only ever creats jobs from the main thread, and only one at most, this is safe to do. BUG: 355100
parent
dedcb931
Please register or sign in to comment