From e4282ea99c664d8d58067bee199cbbcf881b60d5 Mon Sep 17 00:00:00 2001 From: Stephane Glondu Date: Sat, 4 Jul 2009 13:28:35 +0200 Subject: Imported Upstream version 8.2.pl1+dfsg --- library/states.ml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'library/states.ml') diff --git a/library/states.ml b/library/states.ml index 7f7fef47..c81f9614 100644 --- a/library/states.ml +++ b/library/states.ml @@ -6,7 +6,7 @@ (* * GNU Lesser General Public License Version 2.1 *) (************************************************************************) -(* $Id: states.ml 11313 2008-08-07 11:15:03Z barras $ *) +(* $Id: states.ml 12080 2009-04-11 16:56:20Z herbelin $ *) open System @@ -35,3 +35,10 @@ let with_heavy_rollback f x = f x with reraise -> (unfreeze st; raise reraise) + +let with_state_protection f x = + let st = freeze () in + try + let a = f x in unfreeze st; a + with reraise -> + (unfreeze st; raise reraise) -- cgit v1.2.3