b server / client

unloading the lib when it contains a ui/sim crashes on windows
This commit is contained in:
2026-02-14 14:32:50 +01:00
parent 8449b6091e
commit b493129184
2 changed files with 10 additions and 2 deletions
+5 -1
View File
@@ -31,13 +31,17 @@ MainWindow::MainWindow(QUrl ws_url, QString sim, QWidget *parent)
continue; continue;
} }
auto widget = loaded_ui(m_web_socket.get(), this); auto widget = loaded_ui(m_web_socket.get(), this);
if (widget == nullptr)
{
lib.unload();
continue;
}
m_sims.insert(std::make_pair(widget->name(), widget)); m_sims.insert(std::make_pair(widget->name(), widget));
connect(widget, &UI_base::log_signal, this, connect(widget, &UI_base::log_signal, this,
[](const char *filename_in, int line_in, const char *funcname_in, int level, QString msg) { [](const char *filename_in, int line_in, const char *funcname_in, int level, QString msg) {
spdlog::default_logger_raw()->log(spdlog::source_loc{filename_in, line_in, funcname_in}, spdlog::default_logger_raw()->log(spdlog::source_loc{filename_in, line_in, funcname_in},
(spdlog::level::level_enum)level, msg.toStdString()); (spdlog::level::level_enum)level, msg.toStdString());
}); });
lib.unload();
} }
// Insert debug sims here // Insert debug sims here
+5 -1
View File
@@ -66,8 +66,12 @@ Simulators::Simulators(uint16_t port, QStringList can_devs, QStringList uart_dev
continue; continue;
} }
auto widget = loaded_sim(m_com, this); auto widget = loaded_sim(m_com, this);
m_simulators.insert(std::make_pair(widget->name(), widget)); if (widget == nullptr)
{
lib.unload(); lib.unload();
continue;
}
m_simulators.insert(std::make_pair(widget->name(), widget));
} }
// Insert Debug sims here // Insert Debug sims here