]> git.mxchange.org Git - simgear.git/commitdiff
Melchior FRANZ:
authorfredb <fredb>
Tue, 21 Feb 2006 12:59:31 +0000 (12:59 +0000)
committerfredb <fredb>
Tue, 21 Feb 2006 12:59:31 +0000 (12:59 +0000)
- don't unlock an already unlocked mutex (Someone wanted to be on
  the safe side with this, but the result is undefined and makes
  pthread_mutex_destroy fail. Reference: manpage for
  pthread_mutexattr_gettype/The Open Group[1]: "Attempting to
  unlock a mutex of this type which is not locked results in
  undefined behaviour.")

- re-enabled all subsystem destructors again (this has been disabled
  because fgfs hung on exit, due to the mutex destroy failure from
  above.)

Reference:
  http://www.opengroup.org/onlinepubs/007908799/xsh/pthread_mutexattr_gettype.html

simgear/structure/subsystem_mgr.cxx
simgear/threads/SGQueue.hxx

index 9ae7d7065c02ed5d19ee47c23e7867964116fda4..3be9096233ac67f9258c19a9e5b594e2c7398c8b 100644 (file)
@@ -224,8 +224,7 @@ SGSubsystemGroup::Member::Member (const Member &)
 
 SGSubsystemGroup::Member::~Member ()
 {
-                                // FIXME: causes a crash
-//     delete subsystem;
+    delete subsystem;
 }
 
 void
index 532106bf3bdd74e429da907f670d9f8c4f64adda..9f534ec909a34e53b01e99c0e8f42b85fcaa0989 100644 (file)
@@ -183,7 +183,7 @@ public:
     /**
      * Destroy this queue.
      */
-    ~SGBlockingQueue() { mutex.unlock(); }
+    ~SGBlockingQueue() {}
 
     /**
      *