aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEnrico Tassi2014-01-27 17:41:37 +0100
committerEnrico Tassi2014-01-30 17:29:33 +0100
commit7516c468528c83593fe4094db35502bc2cda94f8 (patch)
tree128aad3ea9f62ebd603fcfc41c7a0a478cb1aaea
parent1059ecce2a2662e4d8f335bd4db743df70b100b1 (diff)
STM: tell the user if the master is recomputing states validated by workers
When the worker fails, the master may need to recompute some states the worker has already validates. In this case they are colored accordingly.
-rw-r--r--ide/coqOps.ml4
-rw-r--r--lib/interface.mli1
-rw-r--r--lib/serialize.ml2
-rw-r--r--toplevel/stm.ml2
4 files changed, 9 insertions, 0 deletions
diff --git a/ide/coqOps.ml b/ide/coqOps.ml
index be9075279b..347459a65f 100644
--- a/ide/coqOps.ml
+++ b/ide/coqOps.ml
@@ -348,6 +348,10 @@ object(self)
remove_flag sentence `PROCESSING;
remove_flag sentence `ERROR;
self#mark_as_needed sentence
+ | ProcessingInMaster, Some (id,sentence) ->
+ log "ProcessingInMaster" id;
+ add_flag sentence `PROCESSING;
+ self#mark_as_needed sentence
| Incomplete, Some (id, sentence) ->
log "Incomplete" id;
add_flag sentence `INCOMPLETE;
diff --git a/lib/interface.mli b/lib/interface.mli
index 8d250f8507..da09593ba9 100644
--- a/lib/interface.mli
+++ b/lib/interface.mli
@@ -133,6 +133,7 @@ type feedback_content =
| ErrorMsg of Loc.t * string
| InProgress of int
| SlaveStatus of int * string
+ | ProcessingInMaster
type feedback = {
id : edit_or_state_id;
diff --git a/lib/serialize.ml b/lib/serialize.ml
index 411fb9878e..cfaa40fce1 100644
--- a/lib/serialize.ml
+++ b/lib/serialize.ml
@@ -328,6 +328,7 @@ let to_loc xml = match xml with
let to_feedback_content = do_match "feedback_content" (fun s a -> match s,a with
| "addedaxiom", _ -> AddedAxiom
| "processed", _ -> Processed
+ | "processinginmaster", _ -> ProcessingInMaster
| "incomplete", _ -> Incomplete
| "complete", _ -> Complete
| "globref", [loc; filepath; modpath; ident; ty] ->
@@ -342,6 +343,7 @@ let to_feedback_content = do_match "feedback_content" (fun s a -> match s,a with
let of_feedback_content = function
| AddedAxiom -> constructor "feedback_content" "addedaxiom" []
| Processed -> constructor "feedback_content" "processed" []
+ | ProcessingInMaster -> constructor "feedback_content" "processinginmaster" []
| Incomplete -> constructor "feedback_content" "incomplete" []
| Complete -> constructor "feedback_content" "complete" []
| GlobRef(loc, filepath, modpath, ident, ty) ->
diff --git a/toplevel/stm.ml b/toplevel/stm.ml
index ac041a9f78..3f0c232773 100644
--- a/toplevel/stm.ml
+++ b/toplevel/stm.ml
@@ -1308,6 +1308,8 @@ let known_state ?(redefine_qed=false) ~cache id =
inject_non_pstate s
), cache
in
+ if !Flags.async_proofs_mode = Flags.APonParallel 0 then
+ Pp.feedback ~state_id:id Interface.ProcessingInMaster;
State.define ~cache:cache_step ~redefine:redefine_qed step id;
prerr_endline ("reached: "^ Stateid.to_string id) in
reach ~redefine_qed id