share cache for parallel sessions;
authorwenzelm
Sat, 20 Jun 2020 16:18:33 +0200
changeset 71971 34be842f3531
parent 71970 67fb92378224
child 71972 9d98a39aa509
share cache for parallel sessions;
src/Pure/Thy/sessions.scala
src/Pure/Tools/build.scala
--- a/src/Pure/Thy/sessions.scala	Sat Jun 20 15:09:20 2020 +0200
+++ b/src/Pure/Thy/sessions.scala	Sat Jun 20 16:18:33 2020 +0200
@@ -1085,6 +1085,9 @@
   {
     override def toString: String = "Store(output_dir = " + output_dir.expand + ")"
 
+    val xml_cache: XML.Cache = XML.make_cache()
+    val xz_cache: XZ.Cache = XZ.make_cache()
+
 
     /* directories */
 
@@ -1199,9 +1202,6 @@
 
     /* SQL database content */
 
-    val xml_cache: XML.Cache = XML.make_cache()
-    val xz_cache: XZ.Cache = XZ.make_cache()
-
     def read_bytes(db: SQL.Database, name: String, column: SQL.Column): Bytes =
       db.using_statement(Session_Info.table.select(List(column),
         Session_Info.session_name.where_equal(name)))(stmt =>
--- a/src/Pure/Tools/build.scala	Sat Jun 20 15:09:20 2020 +0200
+++ b/src/Pure/Tools/build.scala	Sat Jun 20 16:18:33 2020 +0200
@@ -218,7 +218,11 @@
 
         if (options.bool("pide_session")) {
           val resources = new Resources(sessions_structure, deps(parent))
-          val session = new Session(options, resources)
+          val session =
+            new Session(options, resources) {
+              override val xml_cache: XML.Cache = store.xml_cache
+              override val xz_cache: XZ.Cache = store.xz_cache
+            }
 
           val build_session_errors: Promise[List[String]] = Future.promise
           val stdout = new StringBuilder(1000)