diff options
Diffstat (limited to 'library/states.ml')
-rw-r--r-- | library/states.ml | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/library/states.ml b/library/states.ml index 3bb37a4d..169a3857 100644 --- a/library/states.ml +++ b/library/states.ml @@ -6,16 +6,16 @@ (* * GNU Lesser General Public License Version 2.1 *) (************************************************************************) -(* $Id: states.ml 6692 2005-02-06 13:03:51Z herbelin $ *) +(* $Id: states.ml 9100 2006-08-31 18:04:26Z herbelin $ *) open System type state = Lib.frozen * Summary.frozen -let get_state () = +let freeze () = (Lib.freeze(), Summary.freeze_summaries()) -let set_state (fl,fs) = +let unfreeze (fl,fs) = Lib.unfreeze fl; Summary.unfreeze_summaries fs @@ -23,17 +23,14 @@ let state_magic_number = 19764 let (extern_state,intern_state) = let (raw_extern, raw_intern) = extern_intern state_magic_number ".coq" in - (fun s -> raw_extern s (get_state())), - (fun s -> set_state (raw_intern (Library.get_load_paths ()) s)) + (fun s -> raw_extern s (freeze())), + (fun s -> unfreeze (raw_intern (Library.get_load_paths ()) s)) (* Rollback. *) -let freeze = get_state -let unfreeze = set_state - let with_heavy_rollback f x = - let st = get_state () in + let st = freeze () in try f x with reraise -> - (set_state st; raise reraise) + (unfreeze st; raise reraise) |