Fix completion marking in ACLK cancel node update timer logic (#20111)
Stelios Fragkakis committed
Apr 10, 2025 at 14:14 UTC
756f73ea54128e312e8a8c980e592d4b4659730b
1 file changed
+5
-2
src/database/sqlite/sqlite_aclk.c
+5
-2
@@ -759,16 +759,19 @@ static void aclk_synchronization_event_loop(void *arg)
759
break;
760
case ACLK_CANCEL_NODE_UPDATE_TIMER:
761
host = cmd.param[0];
762
+ struct completion *compl = cmd.param[1];
763
aclk_host_config = host->aclk_host_config;
763
- if (!aclk_host_config || !aclk_host_config->timer_initialized)
764
+ if (!aclk_host_config || !aclk_host_config->timer_initialized) {
765
+ completion_mark_complete(compl);
766
break;
767
+ }
768
if (uv_is_active((uv_handle_t *)&aclk_host_config->timer))
769
uv_timer_stop(&aclk_host_config->timer);
770
771
aclk_host_config->timer_initialized = false;
772
timer_cb_data = mallocz(sizeof(*timer_cb_data));
773
timer_cb_data->payload = host;
771
- timer_cb_data->completion = (struct completion *)cmd.param[1];
774
+ timer_cb_data->completion = compl;
775
aclk_host_config->timer.data = timer_cb_data;
776
uv_close((uv_handle_t *)&aclk_host_config->timer, notify_timer_close_callback);
777
break;