aboutsummaryrefslogtreecommitdiff
path: root/proofs
diff options
context:
space:
mode:
authorEnrico Tassi2015-06-09 13:30:35 +0200
committerEnrico Tassi2015-06-09 13:30:35 +0200
commitfbfc1b8d6e9d95fcbacd3f4ab4921d6f3b01198e (patch)
tree75417b1dfa1720e28c265105a06e3fb23dc85847 /proofs
parenta7a1ec22bc2aa06cc419f7012863656c3aec5871 (diff)
STM: states coming from workers have no proof terminators (Close #4246)
Hence we reuse the ones in master.
Diffstat (limited to 'proofs')
-rw-r--r--proofs/proof_global.ml3
-rw-r--r--proofs/proof_global.mli1
2 files changed, 4 insertions, 0 deletions
diff --git a/proofs/proof_global.ml b/proofs/proof_global.ml
index 50a68952eb..8677b854de 100644
--- a/proofs/proof_global.ml
+++ b/proofs/proof_global.ml
@@ -665,4 +665,7 @@ let freeze ~marshallable =
| `No -> !pstates
let unfreeze s = pstates := s; update_proof_mode ()
let proof_of_state = function { proof }::_ -> proof | _ -> raise NoCurrentProof
+let copy_terminators ~src ~tgt =
+ assert(List.length src = List.length tgt);
+ List.map2 (fun op p -> { p with terminator = op.terminator }) src tgt
diff --git a/proofs/proof_global.mli b/proofs/proof_global.mli
index 6a5116a9e7..88e047782c 100644
--- a/proofs/proof_global.mli
+++ b/proofs/proof_global.mli
@@ -197,3 +197,4 @@ type state
val freeze : marshallable:[`Yes | `No | `Shallow] -> state
val unfreeze : state -> unit
val proof_of_state : state -> Proof.proof
+val copy_terminators : src:state -> tgt:state -> state