|
@@ -16,9 +16,6 @@ KarteDaten::KarteDaten( EditorKlient *client )
|
|
|
|
|
|
KarteDaten::~KarteDaten()
|
|
|
{
|
|
|
- exit = 1;
|
|
|
- if( isRunning() )
|
|
|
- warteAufThread( INT_MAX );
|
|
|
cs.lock();
|
|
|
for( auto i = objekte.getIterator(); i; i++ )
|
|
|
delete i._;
|
|
@@ -121,12 +118,6 @@ void KarteDaten::thread()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void KarteDaten::exitThread()
|
|
|
-{
|
|
|
- exit = 1;
|
|
|
- warteAufThread( INT_MAX );
|
|
|
-}
|
|
|
-
|
|
|
const ObjektDaten *KarteDaten::getObjekt( int index )
|
|
|
{
|
|
|
ObjektDaten *ret = 0;
|
|
@@ -210,4 +201,16 @@ char *KarteDaten::getError() const
|
|
|
bool KarteDaten::hasAktions() const
|
|
|
{
|
|
|
return aktionen.getEintragAnzahl() > 0;
|
|
|
+}
|
|
|
+
|
|
|
+// löscht das objekt wenn es nicht mehr gebraucht wird und beendet den Thread
|
|
|
+Thread *KarteDaten::release()
|
|
|
+{
|
|
|
+ if( ref == 2 && run )
|
|
|
+ {
|
|
|
+ exit = 1;
|
|
|
+ if( isRunning() )
|
|
|
+ warteAufThread( INT_MAX );
|
|
|
+ }
|
|
|
+ return Thread::release();
|
|
|
}
|