Re: [Flightgear-devel] problem on exiting ( was: Next release ofFlightGear )

2004-07-18 Thread Frederic Bouvier
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 - 1.170
+++ main.cxx 18 Jul 2004 12:38:52 -
@@ -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 - 1.7
+++ util.cxx 18 Jul 2004 12:35:38 -
@@ -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


Re: [Flightgear-devel] problem on exiting ( was: Next release ofFlightGear )

2004-07-18 Thread Jonathan Polley
That patch worked just fine.  Hopefully it can be rolled into CVS 
before the release.

Thanks!
Jonathan Polley
On Jul 18, 2004, at 7:40 AM, Frederic Bouvier wrote:
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 - 1.170
+++ main.cxx 18 Jul 2004 12:38:52 -
@@ -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 - 1.7
+++ util.cxx 18 Jul 2004 12:35:38 -
@@ -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

___
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel