Frederic Bouvier wrote: > Jonathan Polley wrote: > > > Fred, > > > > It turns out that the problem should exist on every FlightGear > > system, not just the Mac. On exit(), fgExitCleanup() is called which > > deletes the globals class and then calls fgOSExit(). The only thing > > that fgOSExit() does is turn around and call exit(), which repeats the > > process. I changed fgExitCleanup() in main.cxx to be as follows: > > > > void fgExitCleanup() { > > delete globals; > > //fgOSExit(0); > > } > > > > This prevented the recursive call to exit(), but will not work if > > someone is using the fg_os_sld.cxx module, but it works for me. > > I was suspecting that but was not able to reproduce this behavior on > windows. > > What about this instead : > > void fgExitCleanup() { > if ( globals ) { > delete globals; > globals = 0; > fgOSExit(0); > } > } > > It will allow to call the function twice safely. Can you test that.
And what about this that might be better. -Fred --- main.cxx 15 Jul 2004 18:07:03 -0000 1.170 +++ main.cxx 18 Jul 2004 12:38:52 -0000 @@ -1495,7 +1495,6 @@ // which happens in the sound manager destructor. void fgExitCleanup() { delete globals; - fgOSExit(0); } --- util.cxx 16 Mar 2004 20:19:08 -0000 1.7 +++ util.cxx 18 Jul 2004 12:35:38 -0000 @@ -27,6 +27,7 @@ #include <simgear/debug/logstream.hxx> +#include "fg_os.hxx" #include "fg_io.hxx" #include "fg_props.hxx" #include "globals.hxx" @@ -107,7 +108,7 @@ SG_LOG(SG_GENERAL, SG_INFO, "Exiting FlightGear with status " << status); globals->get_io()->shutdown_all(); - exit(status); + fgOSExit(status); } _______________________________________________ Flightgear-devel mailing list [EMAIL PROTECTED] http://mail.flightgear.org/mailman/listinfo/flightgear-devel