From c3a672cd02e11650e611c816c125b262a35d002c Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Sun, 3 Nov 2024 12:48:34 -0800 Subject: [PATCH] fix incorrect async work ordering in dbgi layer --- src/dbgi/dbgi.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/dbgi/dbgi.c b/src/dbgi/dbgi.c index 496b13e7..fc549f8d 100644 --- a/src/dbgi/dbgi.c +++ b/src/dbgi/dbgi.c @@ -331,7 +331,8 @@ di_open(DI_Key *key) node->ref_count += 1; if(node->ref_count == 1) { - di_u2p_enqueue_key(&key_normalized, max_U64); + di_u2p_enqueue_key(&key_normalized, max_U64); + async_push_work(di_parse_work); } } } @@ -448,11 +449,11 @@ di_rdi_from_key(DI_Scope *scope, DI_Key *key, U64 endt_us) //- rjf: parse not done, not working -> ask for parse if(node != 0 && !node->parse_done && - ins_atomic_u64_eval(&node->request_count) == ins_atomic_u64_eval(&node->completion_count) && - async_push_work(di_parse_work, .endt_us = endt_us, .completion_counter = &node->completion_count)) - { - di_u2p_enqueue_key(&key_normalized, max_U64); + ins_atomic_u64_eval(&node->request_count) == ins_atomic_u64_eval(&node->completion_count) && + di_u2p_enqueue_key(&key_normalized, endt_us)) + { ins_atomic_u64_inc_eval(&node->request_count); + async_push_work(di_parse_work, .completion_counter = &node->completion_count); } //- rjf: time expired -> break