diff src/lru_cache.sml @ 2286:0bdfec16a01d

Fix issue with one-element caches. Locking still WIP.
author Ziv Scully <ziv@mit.edu>
date Fri, 13 Nov 2015 01:04:32 -0500
parents ad3ce1528f71
children 98f96a976ede
line wrap: on
line diff
--- a/src/lru_cache.sml	Thu Nov 12 16:36:35 2015 -0500
+++ b/src/lru_cache.sml	Fri Nov 13 01:04:32 2015 -0500
@@ -24,6 +24,9 @@
 fun flush (index, keys) =
     ffiAppCache' ("flush", index, withTyp optionStringTyp keys)
 
+fun lock (index, write) =
+    ffiAppCache' ((if write then "w" else "r") ^ "lock", index, [])
+
 
 (* Cjr *)
 
@@ -157,18 +160,18 @@
     else implLru args
 
 val cache =
-    let
-        val {check = toyCheck,
-             store = toyStore,
-             flush = toyFlush,
-             setupQuery = toySetupQuery,
-             ...} = ToyCache.cache
-    in
-        {check = toyIfNoKeys (length o #2) check toyCheck,
-         store = toyIfNoKeys (length o #2) store toyStore,
-         flush = toyIfNoKeys (length o #2) flush toyFlush,
-         setupQuery = toyIfNoKeys #params setupQuery toySetupQuery,
-         setupGlobal = setupGlobal}
-    end
+    (* let *)
+    (*     val {check = toyCheck, *)
+    (*          store = toyStore, *)
+    (*          flush = toyFlush, *)
+    (*          setupQuery = toySetupQuery, *)
+    (*          ...} = ToyCache.cache *)
+    (* in *)
+        (* {check = toyIfNoKeys (length o #2) check toyCheck, *)
+        (*  store = toyIfNoKeys (length o #2) store toyStore, *)
+        (*  flush = toyIfNoKeys (length o #2) flush toyFlush, *)
+    {check = check, store = store, flush = flush, lock = lock,
+     setupQuery = setupQuery, setupGlobal = setupGlobal}
+    (* end *)
 
 end