From a759c1faa98db472bf5cbfd4207c6055200792dd Mon Sep 17 00:00:00 2001 From: Paul Hollinsky Date: Wed, 24 Jun 2020 22:03:31 -0400 Subject: [PATCH] Communication: Fix issue where driver failing to open leaves dangling thread --- communication/communication.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/communication/communication.cpp b/communication/communication.cpp index 52819b9..b0f2e8b 100644 --- a/communication/communication.cpp +++ b/communication/communication.cpp @@ -23,8 +23,10 @@ bool Communication::open() { return false; } + if(!driver->open()) + return false; spawnThreads(); - return driver->open(); + return true; } void Communication::spawnThreads() { @@ -39,13 +41,13 @@ void Communication::joinThreads() { } bool Communication::close() { + joinThreads(); + if(!isOpen()) { report(APIEvent::Type::DeviceCurrentlyClosed, APIEvent::Severity::Error); return false; } - joinThreads(); - return driver->close(); }