Explorar o código

Fehler beim beenden von Threads behoben

Kolja Strohm %!s(int64=5) %!d(string=hai) anos
pai
achega
a1fa068de5
Modificáronse 1 ficheiros con 10 adicións e 2 borrados
  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();
 }