fix incorrect loop-again logic on async threads

This commit is contained in:
Ryan Fleury
2025-09-19 16:41:49 -07:00
parent 8fa01d3e30
commit 53054e5add
3 changed files with 6 additions and 5 deletions
+4 -4
View File
@@ -193,10 +193,10 @@ async_thread_entry_point(void *params)
if(!ins_atomic_u32_eval(&async_loop_again))
{
MutexScope(async_tick_start_mutex) cond_var_wait(async_tick_start_cond_var, async_tick_start_mutex, os_now_microseconds()+100000);
if(lane_idx() == 0)
{
async_loop_again = 0;
}
}
else if(lane_idx() == 0)
{
async_loop_again = 0;
}
#if defined(CONTENT_H)
c_tick();
+1
View File
@@ -97,6 +97,7 @@ tex_texture_from_hash_topology(Access *access, U128 hash, TEX_Topology topology)
n->v.top = topology;
tex_shared->req_count += 1;
}
cond_var_broadcast(async_tick_start_cond_var);
}
// rjf: node? -> grab & access
+1 -1
View File
@@ -109,4 +109,4 @@ internal R_Handle tex_texture_from_key_topology(Access *access, C_Key key, TEX_T
internal void tex_tick(void);
#endif //TEXTURE_CACHE_H
#endif // TEXTURE_CACHE_H