]> git.mxchange.org Git - flightgear.git/commitdiff
Reset: work with threaded OSG modes
authorJames Turner <zakalawe@mac.com>
Tue, 11 Mar 2014 16:45:31 +0000 (16:45 +0000)
committerJames Turner <zakalawe@mac.com>
Tue, 11 Mar 2014 16:45:31 +0000 (16:45 +0000)
src/Main/fg_init.cxx

index d39f3ef615f9499056755ec69c78198dca6aaeaa..f041f9d4fc03a0ed4681b5d970acb55980ad7541 100644 (file)
@@ -971,13 +971,16 @@ void fgStartNewReset()
         }
     } // of top-level groups iteration
     
+    FGRenderer* render = globals->get_renderer();
+    // needed or we crash in multi-threaded OSG mode
+    render->getViewer()->stopThreading();
+    
     // order is important here since tile-manager shutdown needs to
     // access the scenery object
     globals->set_tile_mgr(NULL);
     globals->set_scenery(NULL);
     flightgear::CameraGroup::setDefault(NULL);
     
-    FGRenderer* render = globals->get_renderer();
     // don't cancel the pager until after shutdown, since AIModels (and
     // potentially others) can queue delete requests on the pager.
     render->getViewer()->getDatabasePager()->cancel();
@@ -1024,6 +1027,7 @@ void fgStartNewReset()
     // must do this before splashinit for Rembrandt
     flightgear::CameraGroup::buildDefaultGroup(viewer.get());
     render->splashinit();
+    viewer->startThreading();
     
     fgOSResetProperties();