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

@@ -88,7 +88,9 @@ RGBController_HyperXPulsefireDart::RGBController_HyperXPulsefireDart(HyperXPulse
RGBController_HyperXPulsefireDart::~RGBController_HyperXPulsefireDart()
{
Shutdown();
delete controller;
}
void RGBController_HyperXPulsefireDart::SetupZones()
@@ -56,6 +56,8 @@ RGBController_HyperXPulsefireFPSPro::RGBController_HyperXPulsefireFPSPro(HyperXP
RGBController_HyperXPulsefireFPSPro::~RGBController_HyperXPulsefireFPSPro()
{
Shutdown();
keepalive_thread_run = 0;
keepalive_thread->join();
delete keepalive_thread;
@@ -56,6 +56,8 @@ RGBController_HyperXPulsefireHaste::RGBController_HyperXPulsefireHaste(HyperXPul
RGBController_HyperXPulsefireHaste::~RGBController_HyperXPulsefireHaste()
{
Shutdown();
keepalive_thread_run = 0;
keepalive_thread->join();
delete keepalive_thread;
@@ -58,7 +58,13 @@ RGBController_HyperXPulsefireRaid::RGBController_HyperXPulsefireRaid(HyperXPulse
RGBController_HyperXPulsefireRaid::~RGBController_HyperXPulsefireRaid()
{
Shutdown();
keepalive_thread_run = 0;
keepalive_thread->join();
delete keepalive_thread;
delete controller;
}
void RGBController_HyperXPulsefireRaid::SetupZones()
@@ -56,6 +56,8 @@ RGBController_HyperXPulsefireSurge::RGBController_HyperXPulsefireSurge(HyperXPul
RGBController_HyperXPulsefireSurge::~RGBController_HyperXPulsefireSurge()
{
Shutdown();
keepalive_thread_run = 0;
keepalive_thread->join();
delete keepalive_thread;