Release the background parser lock while creating parse jobs.

Authored by mwolff on Sep 6 2016, 8:13 PM.

Description

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

Details

Committed
mwolffSep 6 2016, 8:17 PM
Parents
R32:dedcb931355c: Separate finding the next document to parse and creating a job for it.
Branches
Unknown
Tags
Unknown