From adc2bace19a25ab34c38c470a1deb5a77a267fd9 Mon Sep 17 00:00:00 2001 From: "Rebecca N. Palmer" Date: Mon, 15 Aug 2016 07:58:40 +0100 Subject: [PATCH] fix hang on exit when multithreaded (bug 1830) --- src/Viewer/fg_os_osgviewer.cxx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Viewer/fg_os_osgviewer.cxx b/src/Viewer/fg_os_osgviewer.cxx index 0799ffe4a..61319cfc8 100644 --- a/src/Viewer/fg_os_osgviewer.cxx +++ b/src/Viewer/fg_os_osgviewer.cxx @@ -362,6 +362,14 @@ void fgOSInit(int* argc, char** argv) void fgOSCloseWindow() { + if (viewer) { + // https://code.google.com/p/flightgear-bugs/issues/detail?id=1291 + // https://sourceforge.net/p/flightgear/codetickets/1830/ + // explicitly stop trheading before we delete the renderer or + // viewMgr (which ultimately holds refs to the CameraGroup, and + // GraphicsContext) + viewer->stopThreading(); + } FGScenery::resetPagerSingleton(); flightgear::CameraGroup::setDefault(NULL); WindowSystemAdapter::setWSA(NULL); -- 2.39.5