Fixing presets: Difference between revisions

Jump to navigation Jump to search
No edit summary
Line 49: Line 49:
== Issues ==
== Issues ==
{{cquote|
{{cquote|
Here's my current hypothesis: when FlightGear is
Here's my current hypothesis: when FlightGear is reset, some modules are replaced with new ones (the old ones may or may not be deleted, but are never unbound).  We end up with all kinds of dangling references, especially (but not exclusively) for bound properties, and eventually things grind to a halt.
reset, some modules are replaced with new ones (the old ones may or
may not be deleted, but are never unbound).  We end up with all kinds
of dangling references, especially (but not exclusively) for bound
properties, and eventually things grind to a halt.


If I'm right, the property module makes the crash happen sooner, but
If I'm right, the property module makes the crash happen sooner, but the crash *will* happen one way or another, and there are probably some nasty memory leaks in there as well.  Remember that reset has always caused occasional unexplained, hard-to-reproduce crashes.
the crash *will* happen one way or another, and there are probably
some nasty memory leaks in there as well.  Remember that reset has
always caused occasional unexplained, hard-to-reproduce crashes.


The long-term fix is to finish the cleanup of main.cxx and fg_init.cxx
The long-term fix is to finish the cleanup of main.cxx and fg_init.cxx so that all initialization code is moved out to the subsystems, and
so that all initialization code is moved out to the subsystems, and
the subsystems themselves are kept in a single, ordered list so that they can be managed easily and transparently.  It should not be
the subsystems themselves are kept in a single, ordered list so that
necessary to delete and replace any subsystems on a reset, with the exception of the FDM, since all can adjust their state as required.<ref>{{cite web |url=http://www.mail-archive.com/flightgear-devel@flightgear.org/msg06742.html |title= Crash on "Reset" function.|author=David Megginson |date=Wed, 05 Jun 2002 08:00:36 -0700}}</ref>|David Megginson}}
they can be managed easily and transparently.  It should not be
necessary to delete and replace any subsystems on a reset, with the
exception of the FDM, since all can adjust their state as required.<ref>{{cite web |url=http://www.mail-archive.com/flightgear-devel@flightgear.org/msg06742.html |title= Crash on "Reset" function.|author=David Megginson |date=Wed, 05 Jun 2002 08:00:36 -0700}}</ref>|David Megginson}}


{{cquote|
{{cquote|

Navigation menu