https://bugs.kde.org/show_bug.cgi?id=355100

Milian Wolff <m...@milianw.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
      Latest Commit|                            |http://commits.kde.org/kdev
                   |                            |platform/8c46e8e765857b9e4d
                   |                            |09b78c6896100dc150f964
             Status|CONFIRMED                   |RESOLVED

--- Comment #7 from Milian Wolff <m...@milianw.de> ---
Git commit 8c46e8e765857b9e4d09b78c6896100dc150f964 by Milian Wolff.
Committed on 06/09/2016 at 20:17.
Pushed by mwolff into branch '5.0'.

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.

M  +16   -1    language/backgroundparser/backgroundparser.cpp
M  +0    -4    language/backgroundparser/tests/test_backgroundparser.cpp

http://commits.kde.org/kdevplatform/8c46e8e765857b9e4d09b78c6896100dc150f964

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to