Explorar el Código

Match again inside mutex

Rudy Ges hace 1 mes
padre
commit
3a668c1d04
Se han modificado 1 ficheros con 6 adiciones y 3 borrados
  1. 6 3
      src/core/ds/atomicLazy.ml

+ 6 - 3
src/core/ds/atomicLazy.ml

@@ -13,9 +13,12 @@ let force lazy_val =
 	match lazy_val.value with
 		| None ->
 			Mutex.protect lazy_val.mutex (fun () ->
-				let result = lazy_val.compute () in
-				lazy_val.value <- Some result;
-				result
+				match lazy_val.value with
+					| None ->
+						let result = lazy_val.compute () in
+						lazy_val.value <- Some result;
+						result
+					| Some result -> result
 			)
 		| Some v -> v