GitOrigin-RevId: 8cb8a0d297678f8a923daf0fae161c3d5f7e6dfa
This commit is contained in:
Vladimir Krivosheev
2023-05-04 21:39:44 +02:00
committed by intellij-monorepo-bot
parent a5ca45f22d
commit b2be1ed69d

View File

@@ -6,6 +6,7 @@ import com.intellij.diagnostic.StartUpMeasurer
import com.intellij.diagnostic.runActivity
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.EDT
import com.intellij.openapi.application.writeAction
import com.intellij.openapi.components.serviceAsync
import com.intellij.openapi.diagnostic.logger
import com.intellij.openapi.module.ModuleManager
@@ -38,7 +39,7 @@ private val LOG = logger<ModuleBridgeLoaderService>()
private val modulesLoadingTimeMs: AtomicLong = AtomicLong()
private fun setupOpenTelemetryReporting(meter: Meter): Unit {
private fun setupOpenTelemetryReporting(meter: Meter) {
val modulesLoadingTimeGauge = meter.gaugeBuilder("workspaceModel.moduleBridgeLoader.loading.modules.ms")
.ofLongs().setDescription("Total time spent in method").buildObserver()
@@ -51,6 +52,12 @@ private fun setupOpenTelemetryReporting(meter: Meter): Unit {
}
private class ModuleBridgeLoaderService : ProjectServiceContainerInitializedListener {
companion object {
init {
setupOpenTelemetryReporting(jpsMetrics.meter)
}
}
override suspend fun execute(project: Project) {
val projectModelSynchronizer = JpsProjectModelSynchronizer.getInstance(project)
val workspaceModel = project.serviceAsync<WorkspaceModel>().await() as WorkspaceModelImpl
@@ -100,10 +107,8 @@ private class ModuleBridgeLoaderService : ProjectServiceContainerInitializedList
val jdkTableDeferred = ApplicationManager.getApplication().serviceAsync<ProjectJdkTable>()
val projectRootManager = project.serviceAsync<ProjectRootManager>().await() as ProjectRootManagerBridge
jdkTableDeferred.join()
withContext(Dispatchers.EDT) {
ApplicationManager.getApplication().runWriteAction {
projectRootManager.setupTrackedLibrariesAndJdks()
}
writeAction {
projectRootManager.setupTrackedLibrariesAndJdks()
}
}
runActivity("workspace file index initialization") {
@@ -113,12 +118,6 @@ private class ModuleBridgeLoaderService : ProjectServiceContainerInitializedList
modulesLoadingTimeMs.addAndGet(System.currentTimeMillis() - start)
WorkspaceModelTopics.getInstance(project).notifyModulesAreLoaded()
}
companion object {
init {
setupOpenTelemetryReporting(jpsMetrics.meter)
}
}
}
private suspend fun loadModules(project: Project,