src/Pure/Tools/build_process.scala
changeset 78246 76dd9b9cf624
parent 78245 eca6ae2a09d7
child 78251 f0762eb07583
equal deleted inserted replaced
78245:eca6ae2a09d7 78246:76dd9b9cf624
   546 
   546 
   547     def stamp_worker(
   547     def stamp_worker(
   548       db: SQL.Database,
   548       db: SQL.Database,
   549       worker_uuid: String,
   549       worker_uuid: String,
   550       serial: Long,
   550       serial: Long,
   551       stop: Boolean = false
   551       stop_now: Boolean = false
   552     ): Unit = {
   552     ): Unit = {
       
   553       val sql = Workers.worker_uuid.where_equal(worker_uuid)
       
   554 
       
   555       val stop =
       
   556         db.execute_query_statementO(
       
   557           Workers.table.select(List(Workers.stop), sql = sql), _.get_date(Workers.stop)).flatten
       
   558 
   553       db.execute_statement(
   559       db.execute_statement(
   554         Workers.table.update(List(Workers.stamp, Workers.stop, Workers.serial),
   560         Workers.table.update(List(Workers.stamp, Workers.stop, Workers.serial), sql = sql),
   555           sql = Workers.worker_uuid.where_equal(worker_uuid)),
       
   556         body = { stmt =>
   561         body = { stmt =>
   557           val now = db.now()
   562           val now = db.now()
   558           stmt.date(1) = now
   563           stmt.date(1) = now
   559           stmt.date(2) = if (stop) Some(now) else None
   564           stmt.date(2) = if (stop_now) Some(now) else stop
   560           stmt.long(3) = serial
   565           stmt.long(3) = serial
   561         })
   566         })
   562     }
   567     }
   563 
   568 
   564 
   569 
  1036     }
  1041     }
  1037   }
  1042   }
  1038 
  1043 
  1039   protected final def stop_worker(): Unit = synchronized_database {
  1044   protected final def stop_worker(): Unit = synchronized_database {
  1040     for (db <- _build_database) {
  1045     for (db <- _build_database) {
  1041       Build_Process.Data.stamp_worker(db, worker_uuid, _state.serial, stop = true)
  1046       Build_Process.Data.stamp_worker(db, worker_uuid, _state.serial, stop_now = true)
  1042     }
  1047     }
  1043   }
  1048   }
  1044 
  1049 
  1045 
  1050 
  1046   /* run */
  1051   /* run */