annotate 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 |
|
rev |
line source |
ziv@2233
|
1 structure Cache = struct
|
ziv@2233
|
2
|
ziv@2233
|
3 type cache =
|
ziv@2233
|
4 {(* Takes a query ID and parameters (and, for store, the value to
|
ziv@2286
|
5 store) and gives an FFI call that checks, stores, or flushes the
|
ziv@2286
|
6 relevant entry. The parameters are strings for check and store and
|
ziv@2286
|
7 optional strings for flush because some parameters might not be
|
ziv@2286
|
8 fixed. *)
|
ziv@2233
|
9 check : int * Mono.exp list -> Mono.exp',
|
ziv@2233
|
10 store : int * Mono.exp list * Mono.exp -> Mono.exp',
|
ziv@2233
|
11 flush : int * Mono.exp list -> Mono.exp',
|
ziv@2286
|
12 lock : int * bool (* true = write, false = read *) -> Mono.exp',
|
ziv@2233
|
13 (* Generates C needed for FFI calls in check, store, and flush. *)
|
ziv@2233
|
14 setupGlobal : Print.PD.pp_desc,
|
ziv@2233
|
15 setupQuery : {index : int, params : int} -> Print.PD.pp_desc}
|
ziv@2233
|
16
|
ziv@2233
|
17 end
|