Rudy Ges 1 mēnesi atpakaļ
vecāks
revīzija
6b8de3fbd3
1 mainītis faili ar 7 papildinājumiem un 7 dzēšanām
  1. 7 7
      src/core/ds/atomicLazy.ml

+ 7 - 7
src/core/ds/atomicLazy.ml

@@ -10,12 +10,12 @@ let from_fun f =
 	{ value = None; mutex = Mutex.create (); compute = (fun () -> f()) }
 
 let force lazy_val =
-	if Option.is_none lazy_val.value then
-		Mutex.protect lazy_val.mutex (fun () ->
-			let result = lazy_val.compute () in
-			lazy_val.value <- Some result;
-		);
 	match lazy_val.value with
-	| Some v -> v
-	| None -> failwith "Value not computed"
+		| None ->
+			Mutex.protect lazy_val.mutex (fun () ->
+				let result = lazy_val.compute () in
+				lazy_val.value <- Some result;
+				result
+			)
+		| Some v -> v