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

ms...@fastmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ms...@fastmail.com

--- Comment #4 from ms...@fastmail.com ---
This has occurred on my machine and it appears rather clear the culprit after
having done some investigation. The following locking events should make it
apparent:

ClangParseJob thread:
1. In ClangParseJob::run, ParseSession constructor is invoked which locks on
the corresponding parse session.
2. ClangParseInfo::run then invokes ClangHelpers::buildDUChain which then
invokes DUChainWriteLocker constructor.

ClangCodeCompletion thread:
1. In ClangCodeCompletionWorker::run, DUChainReadLocker constructor is invoked.
2. ClangCodeCompletionWorker::run then invokes createCompletionContext which
invokes ClangCodeCompletionContext constructor which then invokes ParseSesssion
constructor on the same parse session in ClangParseJob 1.

Consequently, ClangCodeCompletion thread could hold a readlock on DUChain while
ClangParseJob could hold a lock on the parse session while they both need
simultaneous access to both resources.

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

Reply via email to