ensure that no old instances of RunnerAndConfigurationSettings after reloadSchemes (for MPS)

This commit is contained in:
Vladimir Krivosheev
2018-04-23 16:07:10 +02:00
parent 153e59a1f9
commit 9d813ce1cf
@@ -159,8 +159,11 @@ open class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persi
val types = factories.toMutableList()
types.sortBy { it.displayName }
types.add(UnknownConfigurationType.INSTANCE)
for (type in types) {
idToType.put(type.id, type)
lock.write {
idToType.clear()
for (type in types) {
idToType.put(type.id, type)
}
}
}
@@ -501,6 +504,9 @@ open class RunManagerImpl(internal val project: Project) : RunManagerEx(), Persi
lock.write {
// not really required, but hot swap friendly - 1) factory is used a key, 2) developer can change some defaults.
templateDifferenceHelper.clearCache()
templateIdToConfiguration.clear()
listManager.idToSettings.clear()
recentlyUsedTemporaries.clear()
}
workspaceSchemeManager.reload()
projectSchemeManager.reload()