X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fstructure%2Fsubsystem_mgr.cxx;h=387d097a091bd855ebfe189aeb38b092135ded59;hb=c955e61ba785a7b4699ed0a35f947fb661cab854;hp=6e4dff2901ed9677b02962a316051878cfb9ef65;hpb=200df49d6e2d8896e1deaa6da7af5b4a91058a4f;p=simgear.git diff --git a/simgear/structure/subsystem_mgr.cxx b/simgear/structure/subsystem_mgr.cxx index 6e4dff29..387d097a 100644 --- a/simgear/structure/subsystem_mgr.cxx +++ b/simgear/structure/subsystem_mgr.cxx @@ -38,6 +38,11 @@ SGSubsystem::reinit () { } +void +SGSubsystem::shutdown () +{ +} + void SGSubsystem::bind () { @@ -141,6 +146,14 @@ SGSubsystemGroup::reinit () _members[i]->subsystem->reinit(); } +void +SGSubsystemGroup::shutdown () +{ + // reverse order to prevent order dependency problems + for (unsigned int i = _members.size(); i > 0; i--) + _members[i-1]->subsystem->shutdown(); +} + void SGSubsystemGroup::bind () { @@ -420,6 +433,15 @@ SGSubsystemMgr::reinit () _groups[i]->reinit(); } +void +SGSubsystemMgr::shutdown () +{ + // reverse order to prevent order dependency problems + for (int i = MAX_GROUPS-1; i >= 0; i--) + _groups[i]->shutdown(); +} + + void SGSubsystemMgr::bind () {