From 105db27fa8ca5e0781ba1e363de895024b56998b Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Wed, 21 Aug 2019 14:57:31 +0200 Subject: [PATCH] Avoid ASSERT in XPlane "rapid shutdown" --- src/plugins/simulator/xplane/simulatorxplane.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/plugins/simulator/xplane/simulatorxplane.cpp b/src/plugins/simulator/xplane/simulatorxplane.cpp index 827816228..c49b263aa 100644 --- a/src/plugins/simulator/xplane/simulatorxplane.cpp +++ b/src/plugins/simulator/xplane/simulatorxplane.cpp @@ -635,7 +635,9 @@ namespace BlackSimPlugin bool CSimulatorXPlane::physicallyAddRemoteAircraft(const CSimulatedAircraft &newRemoteAircraft) { - Q_ASSERT(isConnected()); + // avoid issue in rapid shutdown + if (this->isShuttingDownOrDisconnected()) { return false; } + // entry checks Q_ASSERT_X(CThreadUtils::isCurrentThreadObjectThread(this), Q_FUNC_INFO, "thread"); Q_ASSERT_X(!newRemoteAircraft.getCallsign().isEmpty(), Q_FUNC_INFO, "empty callsign"); @@ -684,7 +686,8 @@ namespace BlackSimPlugin bool CSimulatorXPlane::physicallyRemoveRemoteAircraft(const CCallsign &callsign) { - Q_ASSERT(this->isConnected()); + // avoid issue in rapid shutdown + if (this->isShuttingDownOrDisconnected()) { return false; } // only remove from sim Q_ASSERT_X(CThreadUtils::isCurrentThreadObjectThread(this), Q_FUNC_INFO, "wrong thread");