Own and cancel desktop bridge commands before core teardown

This commit is contained in:
evgeny committed 2026-10-27 02:25:05 +01:00
1 parent 75124e0efa
commit 1b695fe247
6 files changed
+389 -134

No files matched your search

+7 -3
View File
@@ -6,6 +6,7 @@
extern "C" {
#include "chat/chat_core.h"
#include "../../lib/mem.h"
#include "../../../lib/debug_config.h"
}
#include <QVBoxLayout>
@@ -104,6 +105,7 @@ void ConnMonitorWindow::hideEvent(QHideEvent* event) {
void ConnMonitorWindow::onTimerTick() {
if (m_details->textCursor().hasSelection()) return;
if (QApplication::mouseButtons()) return;
if (!gui_bridge_is_uasync_ready() || !gui_bridge_get_inst()) return;
gui_bridge_post_uasync_fn(chat_core_collect_conn_list_trampoline, gui_bridge_get_inst());
if (m_selectedNodeId) requestMetricsForSelected();
}
@@ -116,11 +118,13 @@ void ConnMonitorWindow::onConnSelected(QListWidgetItem* current, QListWidgetItem
}
void ConnMonitorWindow::requestMetricsForSelected() {
auto* inst = gui_bridge_get_inst();
if (!inst || !m_selectedNodeId || !gui_bridge_is_uasync_ready()) return;
struct chat_node_arg* arg = (struct chat_node_arg*)u_malloc(sizeof(struct chat_node_arg));
if (!arg) return;
arg->inst = gui_bridge_get_inst();
if (!arg) { DEBUG_ERROR(DEBUG_CATEGORY_GENERAL, "connection monitor: metrics request allocation failed"); return; }
arg->inst = inst;
arg->node_id = m_selectedNodeId;
gui_bridge_post_uasync_fn(chat_core_collect_conn_metrics_trampoline, arg);
if (gui_bridge_post_uasync_owned_fn(chat_core_collect_conn_metrics_trampoline, arg) < 0) u_free(arg);
}
void ConnMonitorWindow::onConnList(const uint8_t* data, int len) {