{"push_id":826533397,"size":1,"distinct_size":1,"ref":"refs/heads/3.6","head":"77270648e8687c00329dc0cba62d4befcb228d8c","before":"924c8bf8b175c13af72d83588a9caf4c1d8fcd58","commits":[{"sha":"77270648e8687c00329dc0cba62d4befcb228d8c","author":{"email":"9571db158ca61a0d070db010803474231fa0cbab@theqtcompany.com","name":"Nikolai Kosjar"},"message":"CppTools: Fix dead lock on project unloading\n\n...with the clang code model.\n\nIn updateProjectInfo() we lock the project mutex and emit a signal.\nHowever, the correspondig slot in the clang code model will call back\ninto a function that needs to lock the mutex, too:\n\n    CppTools::CppModelManager::workingCopy // dead locks here\n    CppTools::BaseEditorDocumentParser::InMemoryInfo::InMemoryInfo\n    ClangCodeModel::Internal::ClangEditorDocumentProcessor::run\n    ClangCodeModel::Internal::ModelManagerSupportClang::unregisterTranslationUnitsWithProjectParts\n    ClangCodeModel::Internal::ModelManagerSupportClang::onProjectPartsRemoved\n     ...\n    CppTools::CppModelManager::projectPartsRemoved\n    CppTools::CppModelManager::updateProjectInfo // emits here\n\nFixed by emitting the signal after releasing the mutex.\n\nChange-Id: Id3f3cd22b0604f343ada56ea13c26f0dc1a75bd6\nReviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>","distinct":true,"url":"https://api.github.com/repos/qtproject/qt-creator/commits/77270648e8687c00329dc0cba62d4befcb228d8c"}]}