src/Pure/PIDE/protocol.scala
changeset 56356 c3dbaa155ece
parent 56355 1a9f569b5b7e
child 56359 bca016a9a18d
equal deleted inserted replaced
56355:1a9f569b5b7e 56356:c3dbaa155ece
    59     var touched = false
    59     var touched = false
    60     var accepted = false
    60     var accepted = false
    61     var failed = false
    61     var failed = false
    62     var forks = 0
    62     var forks = 0
    63     var runs = 0
    63     var runs = 0
    64     for { markup <- markups; name = markup.name }
    64     for (markup <- markups) {
    65       name match {
    65       markup.name match {
    66         case Markup.ACCEPTED => accepted = true
    66         case Markup.ACCEPTED => accepted = true
    67         case Markup.FORKED => touched = true; forks += 1
    67         case Markup.FORKED => touched = true; forks += 1
    68         case Markup.JOINED => forks -= 1
    68         case Markup.JOINED => forks -= 1
    69         case Markup.RUNNING => touched = true; runs += 1
    69         case Markup.RUNNING => touched = true; runs += 1
    70         case Markup.FINISHED => runs -= 1
    70         case Markup.FINISHED => runs -= 1
    71         case Markup.FAILED => failed = true
    71         case Markup.FAILED => failed = true
    72         case _ =>
    72         case _ =>
    73       }
    73       }
       
    74     }
    74     Status(touched, accepted, failed, forks, runs)
    75     Status(touched, accepted, failed, forks, runs)
    75   }
    76   }
    76 
    77 
    77   val command_status_elements =
    78   val command_status_elements =
    78     Document.Elements(Markup.ACCEPTED, Markup.FORKED, Markup.JOINED, Markup.RUNNING,
    79     Document.Elements(Markup.ACCEPTED, Markup.FORKED, Markup.JOINED, Markup.RUNNING,
   112     var unprocessed = 0
   113     var unprocessed = 0
   113     var running = 0
   114     var running = 0
   114     var finished = 0
   115     var finished = 0
   115     var warned = 0
   116     var warned = 0
   116     var failed = 0
   117     var failed = 0
   117     for { command <- node.commands }
   118     for (command <- node.commands.iterator) {
   118     {
       
   119       val states = state.command_states(version, command)
   119       val states = state.command_states(version, command)
   120       val status = command_status(states.iterator.flatMap(st => st.status.iterator))
   120       val status = command_status(states.iterator.flatMap(st => st.status.iterator))
   121 
   121 
   122       if (status.is_running) running += 1
   122       if (status.is_running) running += 1
   123       else if (status.is_finished) {
   123       else if (status.is_finished) {
   146     var total = 0.0
   146     var total = 0.0
   147     var commands = Map.empty[Command, Double]
   147     var commands = Map.empty[Command, Double]
   148     for {
   148     for {
   149       command <- node.commands.iterator
   149       command <- node.commands.iterator
   150       st <- state.command_states(version, command)
   150       st <- state.command_states(version, command)
   151       command_timing =
   151     } {
       
   152       val command_timing =
   152         (0.0 /: st.status)({
   153         (0.0 /: st.status)({
   153           case (timing, Markup.Timing(t)) => timing + t.elapsed.seconds
   154           case (timing, Markup.Timing(t)) => timing + t.elapsed.seconds
   154           case (timing, _) => timing
   155           case (timing, _) => timing
   155         })
   156         })
   156     } {
       
   157       total += command_timing
   157       total += command_timing
   158       if (command_timing >= threshold) commands += (command -> command_timing)
   158       if (command_timing >= threshold) commands += (command -> command_timing)
   159     }
   159     }
   160     Node_Timing(total, commands)
   160     Node_Timing(total, commands)
   161   }
   161   }