From ccd42f640f4d9ef305845c59452ddba07bb738ff Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Sat, 28 Jan 2012 19:21:28 +0100 Subject: [PATCH] drop memory caches only when is dirty --- .../jps/incremental/storage/AbstractStateStorage.java | 4 +++- .../org/jetbrains/ether/dependencyView/PersistentMaplet.java | 4 +++- .../jetbrains/ether/dependencyView/PersistentMultiMaplet.java | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/AbstractStateStorage.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/AbstractStateStorage.java index 6da5a613e651..9b7ba49e1749 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/AbstractStateStorage.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/AbstractStateStorage.java @@ -34,7 +34,9 @@ public abstract class AbstractStateStorage { public void dropMemoryCache() { synchronized (myDataLock) { - myMap.dropMemoryCaches(); + if (myMap.isDirty()) { + myMap.dropMemoryCaches(); + } } } diff --git a/jps/model/src/org/jetbrains/ether/dependencyView/PersistentMaplet.java b/jps/model/src/org/jetbrains/ether/dependencyView/PersistentMaplet.java index b60661c8948d..b6fcaa713052 100644 --- a/jps/model/src/org/jetbrains/ether/dependencyView/PersistentMaplet.java +++ b/jps/model/src/org/jetbrains/ether/dependencyView/PersistentMaplet.java @@ -108,7 +108,9 @@ public class PersistentMaplet implements Maplet { public void flush(boolean memoryCachesOnly) { if (memoryCachesOnly) { - myMap.dropMemoryCaches(); + if (myMap.isDirty()) { + myMap.dropMemoryCaches(); + } } else { myMap.force(); diff --git a/jps/model/src/org/jetbrains/ether/dependencyView/PersistentMultiMaplet.java b/jps/model/src/org/jetbrains/ether/dependencyView/PersistentMultiMaplet.java index b62eb72f2b76..3cfc2966da50 100644 --- a/jps/model/src/org/jetbrains/ether/dependencyView/PersistentMultiMaplet.java +++ b/jps/model/src/org/jetbrains/ether/dependencyView/PersistentMultiMaplet.java @@ -169,7 +169,9 @@ class PersistentMultiMaplet implements MultiMaplet { public void flush(boolean memoryCachesOnly) { if (memoryCachesOnly) { - myMap.dropMemoryCaches(); + if (myMap.isDirty()) { + myMap.dropMemoryCaches(); + } } else { myMap.force();