Mercurial > urweb
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