new strategy - allow artifact creation to report a completed generation which differs from the requested generation, thus preventing duplicate gen requests (in the case of ctrl process memory)

This commit is contained in:
Ryan Fleury
2025-10-09 11:24:48 -07:00
parent 28bb158c61
commit 9022efd3ab
13 changed files with 29 additions and 26 deletions
+4 -3
View File
@@ -5977,7 +5977,7 @@ ctrl_thread__single_step(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg)
//~ rjf: Process Memory Artifact Cache Hooks / Lookups
internal AC_Artifact
ctrl_memory_artifact_create(String8 key, U64 gen, B32 *cancel_signal, B32 *retry_out)
ctrl_memory_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out)
{
AC_Artifact artifact = {0};
{
@@ -6098,6 +6098,7 @@ ctrl_memory_artifact_create(String8 key, U64 gen, B32 *cancel_signal, B32 *retry
if((zero_terminated_size > 0 || !key_has_history) && range_size != 0 && pre_read_mem_gen == post_read_mem_gen)
{
hash = c_submit_data(content_key, &range_arena, str8((U8 *)range_base, zero_terminated_size));
gen_out[0] = pre_read_mem_gen;
}
//- rjf: wakeup on new submissions
@@ -6369,7 +6370,7 @@ ctrl_process_write(CTRL_Handle process, Rng1U64 range, void *src)
//~ rjf: Call Stack Artifact Cache Hooks / Lookups
internal AC_Artifact
ctrl_call_stack_artifact_create(String8 key, U64 gen, B32 *cancel_signal, B32 *retry_out)
ctrl_call_stack_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out)
{
AC_Artifact artifact = {0};
{
@@ -6565,7 +6566,7 @@ ctrl_call_stack_from_thread(Access *access, CTRL_Handle thread_handle, B32 high_
//~ rjf: Call Stack Tree Artifact Cache Hooks / Lookups
internal AC_Artifact
ctrl_call_stack_tree_artifact_create(String8 key, U64 gen, B32 *cancel_signal, B32 *retry_out)
ctrl_call_stack_tree_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out)
{
Temp scratch = scratch_begin(0, 0);
Access *access = access_open();