X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics%2Fsrc%2Forg%2Fsimantics%2FSimanticsPlatform.java;h=1f367dc9abf83d63c8201a95d000145ff8f5d3fe;hp=8b1ac1bced1659d414c17dbf6930b11500bbed2b;hb=502db54a267e8583aef1f57120ddc9ac162fbba9;hpb=252076ed80eef446cc62c5b193d34b7bea3cdc80 diff --git a/bundles/org.simantics/src/org/simantics/SimanticsPlatform.java b/bundles/org.simantics/src/org/simantics/SimanticsPlatform.java index 8b1ac1bce..1f367dc9a 100644 --- a/bundles/org.simantics/src/org/simantics/SimanticsPlatform.java +++ b/bundles/org.simantics/src/org/simantics/SimanticsPlatform.java @@ -91,6 +91,7 @@ import org.simantics.graph.db.TransferableGraphs; import org.simantics.graph.diff.Diff; import org.simantics.graph.diff.TransferableGraphDelta1; import org.simantics.internal.Activator; +import org.simantics.internal.TimedSessionCache; import org.simantics.internal.startup.StartupExtensions; import org.simantics.layer0.Layer0; import org.simantics.operation.Layer0X; @@ -113,6 +114,8 @@ import org.simantics.utils.FileUtils; import org.simantics.utils.datastructures.Pair; import org.simantics.utils.logging.TimeLogger; import org.simantics.utils.strings.EString; +import org.simantics.utils.threads.ExecutorWorker; +import org.simantics.utils.threads.ThreadUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -973,6 +976,14 @@ public class SimanticsPlatform implements LifecycleListener { } progress.worked(10); + // NOP at the moment + TimedSessionCache.close(); + + progress.subTask("Thread pools"); + ThreadUtils.shutdown(); + ExecutorWorker.shutdown(); + progress.worked(5); + running = false; progress.subTask("Close Database Session"); if (sessionContext != null) { @@ -999,7 +1010,7 @@ public class SimanticsPlatform implements LifecycleListener { // Make sure Simantics clipboard doesn't store unwanted session data references. Simantics.setClipboard(new SimanticsClipboardImpl()); - progress.worked(30); + progress.worked(50); session = null; projectResource = null; @@ -1021,6 +1032,15 @@ public class SimanticsPlatform implements LifecycleListener { } progress.worked(10); + progress.subTask("Clear index status"); + try { + // Everything ok, clear index dirty state. + DatabaseIndexing.clearAllDirty(); + } catch (IOException e) { + LOGGER.error("Problems encountered while refreshing database index states, see exception for details.", e); + } + progress.worked(5); + if (clearTemporaryFiles) { progress.subTask("Clearing Workspace Temporary Directory"); try {