view src/cache.sml @ 2297:6d56080f495c

Fix a read-after-free bug using a timestamp check
author Adam Chlipala <adam@chlipala.net>
date Thu, 19 Nov 2015 13:18:58 -0500
parents 0bdfec16a01d
children
line wrap: on
line source
structure Cache = struct

type cache =
     {(* Takes a query ID and parameters (and, for store, the value to
         store) and gives an FFI call that checks, stores, or flushes the
         relevant entry. The parameters are strings for check and store and
         optional strings for flush because some parameters might not be
         fixed. *)
      check : int * Mono.exp list -> Mono.exp',
      store : int * Mono.exp list * Mono.exp -> Mono.exp',
      flush : int * Mono.exp list -> Mono.exp',
      lock : int * bool (* true = write, false = read *) -> Mono.exp',
      (* Generates C needed for FFI calls in check, store, and flush. *)
      setupGlobal : Print.PD.pp_desc,
      setupQuery : {index : int, params : int} -> Print.PD.pp_desc}

end