From ce41477f466bcb63b4954b8580695e5cad90f0fe Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Thu, 7 Nov 2013 15:23:23 -0800 Subject: [PATCH] fix VS crash on domain server restart --- .../voxel-server-library/src/VoxelServer.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/libraries/voxel-server-library/src/VoxelServer.cpp b/libraries/voxel-server-library/src/VoxelServer.cpp index de421341f3..6457e261b3 100644 --- a/libraries/voxel-server-library/src/VoxelServer.cpp +++ b/libraries/voxel-server-library/src/VoxelServer.cpp @@ -611,6 +611,22 @@ void VoxelServer::run() { } } qDebug() << "VoxelServer::run()... AFTER loop...\n"; + + // walk the node list and disconnect any connected agent nodes + for (NodeList::iterator node = nodeList->begin(); node != nodeList->end(); node++) { + // only send to the NodeTypes that are NODE_TYPE_VOXEL_SERVER + if (node->getType() == NODE_TYPE_AGENT) { + node->lock(); + VoxelNodeData* nodeData = (VoxelNodeData*) node->getLinkedData(); + if (nodeData) { + qDebug() << "VoxelServer::run()... unlinking node...\n"; + node->setLinkedData(NULL); + delete nodeData; + } + node->unlock(); + } + } + // call NodeList::clear() so that all of our node specific objects, including our sending threads, are // properly shutdown and cleaned up.