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
2026-02-02 17:10:37 -06:00
parent 9a8699c831
commit 729d97f8be
331 changed files with 790 additions and 37 deletions

View File

@@ -88,7 +88,9 @@ RGBController_HyperXPulsefireDart::RGBController_HyperXPulsefireDart(HyperXPulse
RGBController_HyperXPulsefireDart::~RGBController_HyperXPulsefireDart()
{
Shutdown();
delete controller;
}
void RGBController_HyperXPulsefireDart::SetupZones()

View File

@@ -56,6 +56,8 @@ RGBController_HyperXPulsefireFPSPro::RGBController_HyperXPulsefireFPSPro(HyperXP
RGBController_HyperXPulsefireFPSPro::~RGBController_HyperXPulsefireFPSPro()
{
Shutdown();
keepalive_thread_run = 0;
keepalive_thread->join();
delete keepalive_thread;

View File

@@ -56,6 +56,8 @@ RGBController_HyperXPulsefireHaste::RGBController_HyperXPulsefireHaste(HyperXPul
RGBController_HyperXPulsefireHaste::~RGBController_HyperXPulsefireHaste()
{
Shutdown();
keepalive_thread_run = 0;
keepalive_thread->join();
delete keepalive_thread;

View File

@@ -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()

View File

@@ -56,6 +56,8 @@ RGBController_HyperXPulsefireSurge::RGBController_HyperXPulsefireSurge(HyperXPul
RGBController_HyperXPulsefireSurge::~RGBController_HyperXPulsefireSurge()
{
Shutdown();
keepalive_thread_run = 0;
keepalive_thread->join();
delete keepalive_thread;