mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 01:36:56 +02:00
cleaning up nodeKilled()
This commit is contained in:
parent
6df3ff57c4
commit
6601a0d4e9
3 changed files with 24 additions and 6 deletions
|
@ -44,7 +44,7 @@ OctreeQueryNode::OctreeQueryNode() :
|
||||||
|
|
||||||
OctreeQueryNode::~OctreeQueryNode() {
|
OctreeQueryNode::~OctreeQueryNode() {
|
||||||
_isShuttingDown = true;
|
_isShuttingDown = true;
|
||||||
const bool extraDebugging = false;
|
const bool extraDebugging = true;
|
||||||
if (extraDebugging) {
|
if (extraDebugging) {
|
||||||
qDebug() << "OctreeQueryNode::~OctreeQueryNode()";
|
qDebug() << "OctreeQueryNode::~OctreeQueryNode()";
|
||||||
}
|
}
|
||||||
|
@ -75,6 +75,25 @@ void OctreeQueryNode::deleteLater() {
|
||||||
OctreeQuery::deleteLater();
|
OctreeQuery::deleteLater();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OctreeQueryNode::nodeKilled() {
|
||||||
|
_isShuttingDown = true;
|
||||||
|
const bool extraDebugging = true;
|
||||||
|
if (extraDebugging) {
|
||||||
|
qDebug() << "OctreeQueryNode::nodeKilled()";
|
||||||
|
}
|
||||||
|
if (_octreeSendThread) {
|
||||||
|
if (extraDebugging) {
|
||||||
|
qDebug() << "OctreeQueryNode::nodeKilled()... calling _octreeSendThread->terminate()";
|
||||||
|
}
|
||||||
|
_octreeSendThread->terminate();
|
||||||
|
if (extraDebugging) {
|
||||||
|
qDebug() << "OctreeQueryNode::nodeKilled()... calling delete _octreeSendThread";
|
||||||
|
}
|
||||||
|
delete _octreeSendThread;
|
||||||
|
_octreeSendThread = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void OctreeQueryNode::initializeOctreeSendThread(const SharedAssignmentPointer& myAssignment, const SharedNodePointer& node) {
|
void OctreeQueryNode::initializeOctreeSendThread(const SharedAssignmentPointer& myAssignment, const SharedNodePointer& node) {
|
||||||
// Create octree sending thread...
|
// Create octree sending thread...
|
||||||
|
|
|
@ -94,6 +94,7 @@ public:
|
||||||
unsigned int getlastOctreePacketLength() const { return _lastOctreePacketLength; }
|
unsigned int getlastOctreePacketLength() const { return _lastOctreePacketLength; }
|
||||||
int getDuplicatePacketCount() const { return _duplicatePacketCount; }
|
int getDuplicatePacketCount() const { return _duplicatePacketCount; }
|
||||||
|
|
||||||
|
void nodeKilled();
|
||||||
bool isShuttingDown() const { return _isShuttingDown; }
|
bool isShuttingDown() const { return _isShuttingDown; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include "OctreeServer.h"
|
#include "OctreeServer.h"
|
||||||
#include "OctreeServerConsts.h"
|
#include "OctreeServerConsts.h"
|
||||||
|
|
||||||
OctreeServer* OctreeServer::_instance;
|
OctreeServer* OctreeServer::_instance = NULL;
|
||||||
int OctreeServer::_clientCount = 0;
|
int OctreeServer::_clientCount = 0;
|
||||||
const int MOVING_AVERAGE_SAMPLE_COUNTS = 1000000;
|
const int MOVING_AVERAGE_SAMPLE_COUNTS = 1000000;
|
||||||
|
|
||||||
|
@ -1064,10 +1064,8 @@ void OctreeServer::nodeKilled(SharedNodePointer node) {
|
||||||
qDebug() << qPrintable(_safeServerName) << "server killed node:" << *node;
|
qDebug() << qPrintable(_safeServerName) << "server killed node:" << *node;
|
||||||
OctreeQueryNode* nodeData = static_cast<OctreeQueryNode*>(node->getLinkedData());
|
OctreeQueryNode* nodeData = static_cast<OctreeQueryNode*>(node->getLinkedData());
|
||||||
if (nodeData) {
|
if (nodeData) {
|
||||||
qDebug() << qPrintable(_safeServerName) << "server resetting Linked Data for node:" << *node;
|
qDebug() << qPrintable(_safeServerName) << "server calling nodeData->nodeKilled() for node:" << *node;
|
||||||
node->setLinkedData(NULL); // set this first in case another thread comes through and tryes to acces this
|
nodeData->nodeKilled(); // tell our node data and sending threads that we'd like to shut down
|
||||||
qDebug() << qPrintable(_safeServerName) << "server deleting Linked Data for node:" << *node;
|
|
||||||
nodeData->deleteLater();
|
|
||||||
} else {
|
} else {
|
||||||
qDebug() << qPrintable(_safeServerName) << "server node missing linked data node:" << *node;
|
qDebug() << qPrintable(_safeServerName) << "server node missing linked data node:" << *node;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue