mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-25 05:04:58 -07:00
replace extra gen parameters in artifact creation hook; replace with explicit cancellation signal, passed by caller
This commit is contained in:
@@ -161,8 +161,8 @@ ac_artifact_from_key_(Access *access, String8 key, AC_ArtifactParams *params, U6
|
||||
}
|
||||
n->v.key = str8_copy(req_batch->arena, key);
|
||||
n->v.gen = params->gen;
|
||||
n->v.last_requested_gen = &node->last_requested_gen;
|
||||
n->v.create = params->create;
|
||||
n->v.cancel_signal = params->cancel_signal;
|
||||
}
|
||||
cond_var_broadcast(async_tick_start_cond_var);
|
||||
ins_atomic_u32_eval_assign(&async_loop_again, 1);
|
||||
@@ -356,7 +356,7 @@ ac_async_tick(void)
|
||||
|
||||
// rjf: compute val
|
||||
B32 retry = 0;
|
||||
AC_Artifact val = r->create(r->key, r->gen, r->last_requested_gen, &retry);
|
||||
AC_Artifact val = r->create(r->key, r->cancel_signal, &retry);
|
||||
|
||||
// rjf: retry? -> resubmit request
|
||||
if(retry && lane_idx() == 0)
|
||||
@@ -458,7 +458,7 @@ ac_async_tick(void)
|
||||
|
||||
// rjf: compute val
|
||||
B32 retry = 0;
|
||||
AC_Artifact val = r->create(r->key, r->gen, r->last_requested_gen, &retry);
|
||||
AC_Artifact val = r->create(r->key, r->cancel_signal, &retry);
|
||||
|
||||
// rjf: retry? -> resubmit request
|
||||
if(retry)
|
||||
|
||||
@@ -16,7 +16,7 @@ struct AC_Artifact
|
||||
////////////////////////////////
|
||||
//~ rjf: Artifact Computation Function Types
|
||||
|
||||
typedef AC_Artifact AC_CreateFunctionType(String8 key, U64 gen, U64 *requested_gen, B32 *retry_out);
|
||||
typedef AC_Artifact AC_CreateFunctionType(String8 key, B32 *cancel_signal, B32 *retry_out);
|
||||
typedef void AC_DestroyFunctionType(AC_Artifact artifact);
|
||||
|
||||
typedef U32 AC_Flags;
|
||||
@@ -37,6 +37,7 @@ struct AC_ArtifactParams
|
||||
U64 gen;
|
||||
U64 evict_threshold_us;
|
||||
B32 *stale_out;
|
||||
B32 *cancel_signal;
|
||||
AC_Flags flags;
|
||||
};
|
||||
|
||||
@@ -48,7 +49,7 @@ struct AC_Request
|
||||
{
|
||||
String8 key;
|
||||
U64 gen;
|
||||
U64 *last_requested_gen;
|
||||
B32 *cancel_signal;
|
||||
AC_CreateFunctionType *create;
|
||||
};
|
||||
|
||||
@@ -138,6 +139,11 @@ global AC_Shared *ac_shared = 0;
|
||||
|
||||
internal void ac_init(void);
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Helpers
|
||||
|
||||
internal B32 ac_cancelled(void);
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Cache Lookups
|
||||
|
||||
|
||||
Reference in New Issue
Block a user