src/Pure/Tools/build_job.scala
changeset 78213 fd0430a7b7a4
parent 78205 a40ae2df39ad
child 78237 c2c59de57df9
equal deleted inserted replaced
78212:dfb172d7e40e 78213:fd0430a7b7a4
    21 
    21 
    22   def start_session(
    22   def start_session(
    23     build_context: Build_Process.Context,
    23     build_context: Build_Process.Context,
    24     progress: Progress,
    24     progress: Progress,
    25     log: Logger,
    25     log: Logger,
       
    26     database_server: Option[SQL.Database],
    26     session_background: Sessions.Background,
    27     session_background: Sessions.Background,
    27     input_shasum: SHA1.Shasum,
    28     input_shasum: SHA1.Shasum,
    28     node_info: Host.Node_Info
    29     node_info: Host.Node_Info
    29   ): Session_Job = {
    30   ): Session_Job = {
    30     new Session_Job(build_context, progress, log, session_background, input_shasum, node_info)
    31     new Session_Job(build_context, progress, log, database_server,
       
    32       session_background, input_shasum, node_info)
    31   }
    33   }
    32 
    34 
    33   object Session_Context {
    35   object Session_Context {
    34     def load(
    36     def load(
    35       build_uuid: String,
    37       build_uuid: String,
    91 
    93 
    92   class Session_Job private[Build_Job](
    94   class Session_Job private[Build_Job](
    93     build_context: Build_Process.Context,
    95     build_context: Build_Process.Context,
    94     progress: Progress,
    96     progress: Progress,
    95     log: Logger,
    97     log: Logger,
       
    98     database_server: Option[SQL.Database],
    96     session_background: Sessions.Background,
    99     session_background: Sessions.Background,
    97     input_shasum: SHA1.Shasum,
   100     input_shasum: SHA1.Shasum,
    98     node_info: Host.Node_Info
   101     node_info: Host.Node_Info
    99   ) extends Build_Job {
   102   ) extends Build_Job {
   100     private val store = build_context.store
   103     private val store = build_context.store
   451 
   454 
   452         val output_shasum = {
   455         val output_shasum = {
   453           val heap = store.output_heap(session_name)
   456           val heap = store.output_heap(session_name)
   454           if (process_result.ok && store_heap && heap.is_file) {
   457           if (process_result.ok && store_heap && heap.is_file) {
   455             val slice = Space.MiB(options.real("build_database_slice")).bytes
   458             val slice = Space.MiB(options.real("build_database_slice")).bytes
   456             val digest =
   459             val digest = ML_Heap.store(database_server, session_name, heap, slice)
   457               using_optional(store.maybe_open_database_server())(
       
   458                 ML_Heap.store(_, session_name, heap, slice))
       
   459             SHA1.shasum(digest, session_name)
   460             SHA1.shasum(digest, session_name)
   460           }
   461           }
   461           else SHA1.no_shasum
   462           else SHA1.no_shasum
   462         }
   463         }
   463 
   464