Move RGBController base destructor functionality into RGBController::Shutdown() so that update thread can be stopped before deleting the controller. Shutdown() must be called in every RGBController implementation before deleting the controller. Also some fixes to the NetworkServer to avoid deadlocking and disconnect issues

This commit is contained in:
Adam Honse committed 2026-03-12 16:42:21 +00:00
1 parent f592b48696
commit ba1b68ee8a
331 files changed
+790 -37

No files matched your search

@@ -238,6 +238,8 @@ RGBController_HyperXAlloyElite2::RGBController_HyperXAlloyElite2(HyperXAlloyElit
RGBController_HyperXAlloyElite2::~RGBController_HyperXAlloyElite2()
{
Shutdown();
keepalive_thread_run = false;
keepalive_thread->join();
delete keepalive_thread;
@@ -251,6 +251,8 @@ RGBController_HyperXAlloyElite::RGBController_HyperXAlloyElite(HyperXAlloyEliteC
RGBController_HyperXAlloyElite::~RGBController_HyperXAlloyElite()
{
Shutdown();
keepalive_thread_run = false;
keepalive_thread->join();
delete keepalive_thread;
@@ -192,6 +192,8 @@ RGBController_HyperXAlloyFPS::RGBController_HyperXAlloyFPS(HyperXAlloyFPSControl
RGBController_HyperXAlloyFPS::~RGBController_HyperXAlloyFPS()
{
Shutdown();
keepalive_thread_run = false;
keepalive_thread->join();
delete keepalive_thread;
@@ -245,6 +245,8 @@ RGBController_HyperXAlloyOrigins60and65::RGBController_HyperXAlloyOrigins60and65
RGBController_HyperXAlloyOrigins60and65::~RGBController_HyperXAlloyOrigins60and65()
{
Shutdown();
keepalive_thread_run = 0;
keepalive_thread->join();
delete keepalive_thread;
@@ -213,6 +213,8 @@ RGBController_HyperXAlloyOrigins::RGBController_HyperXAlloyOrigins(HyperXAlloyOr
RGBController_HyperXAlloyOrigins::~RGBController_HyperXAlloyOrigins()
{
Shutdown();
keepalive_thread_run = 0;
keepalive_thread->join();
delete keepalive_thread;
@@ -128,6 +128,8 @@ RGBController_HyperXAlloyOriginsCore::RGBController_HyperXAlloyOriginsCore(Hyper
RGBController_HyperXAlloyOriginsCore::~RGBController_HyperXAlloyOriginsCore()
{
Shutdown();
keepalive_thread_run = 0;
keepalive_thread->join();
delete keepalive_thread;