]> matita.cs.unibo.it Git - helm.git/commitdiff
Profiling did not profile functions that raise an exception!
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Tue, 20 Sep 2005 17:02:21 +0000 (17:02 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Tue, 20 Sep 2005 17:02:21 +0000 (17:02 +0000)
Fixed.

helm/ocaml/cic/cicUtil.ml

index 07f39896c3050396c9e72a194c88931cfe3d7158..8bb137f204ae241bc06b5585dc84a61de8ae5a04 100644 (file)
@@ -209,7 +209,7 @@ let rec mk_rels howmany from =
   | 0 -> []
   | _ -> (Cic.Rel (howmany + from)) :: (mk_rels (howmany-1) from)
 
-let profiling_enabled = false
+let profiling_enabled = true
 
 type profiler = { profile : 'a 'b. ('a -> 'b) -> 'a -> 'b }
 let profile =
@@ -218,10 +218,16 @@ let profile =
    let total = ref 0.0 in
    let profile f x =
     let before = Unix.gettimeofday () in
-    let res = f x in
-    let after = Unix.gettimeofday () in
-     total := !total +. (after -. before);
-     res
+    try
+     let res = f x in
+     let after = Unix.gettimeofday () in
+      total := !total +. (after -. before);
+      res
+    with
+     exc ->
+      let after = Unix.gettimeofday () in
+       total := !total +. (after -. before);
+       raise exc
    in
    at_exit
     (fun () ->