comparison src/lru_cache.sml @ 2285:ad3ce1528f71

Fix committing multiple stores/flushes. Locking is WIP.
author Ziv Scully <ziv@mit.edu>
date Thu, 12 Nov 2015 16:36:35 -0500
parents 472b4504aef2
children 0bdfec16a01d
comparison
equal deleted inserted replaced
2284:472b4504aef2 2285:ad3ce1528f71
63 val revArgs = paramRepeatRev (fn p => "p" ^ p) ", " 63 val revArgs = paramRepeatRev (fn p => "p" ^ p) ", "
64 64
65 in 65 in
66 Print.box 66 Print.box
67 [string ("static uw_Sqlcache_Cache cacheStruct" ^ i ^ " = {"), 67 [string ("static uw_Sqlcache_Cache cacheStruct" ^ i ^ " = {"),
68 (* newline, *) 68 newline,
69 (* string " .lock = PTHREAD_RWLOCK_INITIALIZER,", *) 69 string " .lock = PTHREAD_RWLOCK_INITIALIZER,",
70 newline, 70 newline,
71 string " .table = NULL,", 71 string " .table = NULL,",
72 newline, 72 newline,
73 string (" .numKeys = " ^ Int.toString params ^ ","), 73 string (" .numKeys = " ^ Int.toString params ^ ","),
74 newline, 74 newline,
83 string ("static uw_Basis_string uw_Sqlcache_check" ^ i), 83 string ("static uw_Basis_string uw_Sqlcache_check" ^ i),
84 string ("(uw_context ctx" ^ typedArgs ^ ") {"), 84 string ("(uw_context ctx" ^ typedArgs ^ ") {"),
85 newline, 85 newline,
86 string (" char *ks[] = {" ^ revArgs ^ "};"), 86 string (" char *ks[] = {" ^ revArgs ^ "};"),
87 newline, 87 newline,
88 string (" uw_Sqlcache_Value *v = uw_Sqlcache_check(cache" ^ i ^ ", ks);"), 88 string (" uw_Sqlcache_Value *v = uw_Sqlcache_check(ctx, cache" ^ i ^ ", ks);"),
89 newline, 89 newline,
90 (* If the output is null, it means we had too much recursion, so it's a miss. *) 90 (* If the output is null, it means we had too much recursion, so it's a miss. *)
91 string " if (v && v->output != NULL) {", 91 string " if (v && v->output != NULL) {",
92 newline, 92 newline,
93 string (" puts(\"SQLCACHE: hit " ^ i ^ ".\");"), 93 string (" puts(\"SQLCACHE: hit " ^ i ^ ".\");"),
121 newline, 121 newline,
122 string " v->output = uw_recordingRead(ctx);", 122 string " v->output = uw_recordingRead(ctx);",
123 newline, 123 newline,
124 string (" puts(\"SQLCACHE: stored " ^ i ^ ".\");"), 124 string (" puts(\"SQLCACHE: stored " ^ i ^ ".\");"),
125 newline, 125 newline,
126 string (" uw_Sqlcache_store(cache" ^ i ^ ", ks, v);"), 126 string (" uw_Sqlcache_store(ctx, cache" ^ i ^ ", ks, v);"),
127 newline, 127 newline,
128 string " return uw_unit_v;", 128 string " return uw_unit_v;",
129 newline, 129 newline,
130 string "}", 130 string "}",
131 newline, 131 newline,