Kaynağa Gözat

Fehler beim beenden von Threads behoben

Kolja Strohm 5 yıl önce
ebeveyn
işleme
a1fa068de5
1 değiştirilmiş dosya ile 10 ekleme ve 2 silme
  1. 10 2
      KSGNetwork/ErhaltungClient.cpp

+ 10 - 2
KSGNetwork/ErhaltungClient.cpp

@@ -29,8 +29,6 @@ ErhaltungClient::~ErhaltungClient()
         abmelden();
         trenne();
     }
-    warteAufThread( 10000 );
-    ende();
     if( k )
         k->release();
     delete[] key;
@@ -163,5 +161,15 @@ Thread *ErhaltungClient::getThis()
 //  Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst 
 Thread *ErhaltungClient::release()
 {
+    if( ref == 2 && run )
+    {
+        if( k )
+        {
+            abmelden();
+            trenne();
+        }
+        warteAufThread( 10000 );
+        ende();
+    }
     return Thread::release();
 }