mirror of
https://github.com/overte-org/overte.git
synced 2025-04-25 12:33:27 +02:00
more potential fixes for voxel server crashes
This commit is contained in:
parent
1b18b53cfd
commit
987ce16b10
3 changed files with 8 additions and 8 deletions
|
@ -86,7 +86,9 @@ void VoxelServerPacketProcessor::processPacket(sockaddr& senderAddress, unsigned
|
|||
delete[] vertices;
|
||||
}
|
||||
|
||||
_myServer->lockTree();
|
||||
_myServer->getServerTree().readCodeColorBufferToTree(voxelData, destructive);
|
||||
_myServer->unlockTree();
|
||||
|
||||
// skip to next voxel edit record in the packet
|
||||
voxelData += voxelDataSize;
|
||||
|
|
|
@ -35,7 +35,7 @@ void JurisdictionSender::processPacket(sockaddr& senderAddress, unsigned char*
|
|||
if (node) {
|
||||
QUuid nodeUUID = node->getUUID();
|
||||
lockRequestingNodes();
|
||||
_nodesRequestingJurisdictions.insert(nodeUUID);
|
||||
_nodesRequestingJurisdictions.push(nodeUUID);
|
||||
unlockRequestingNodes();
|
||||
}
|
||||
}
|
||||
|
@ -59,18 +59,16 @@ bool JurisdictionSender::process() {
|
|||
int nodeCount = 0;
|
||||
|
||||
lockRequestingNodes();
|
||||
for (std::set<QUuid>::iterator nodeIterator = _nodesRequestingJurisdictions.begin();
|
||||
nodeIterator != _nodesRequestingJurisdictions.end(); nodeIterator++) {
|
||||
while (!_nodesRequestingJurisdictions.empty()) {
|
||||
|
||||
QUuid nodeUUID = *nodeIterator;
|
||||
QUuid nodeUUID = _nodesRequestingJurisdictions.front();
|
||||
_nodesRequestingJurisdictions.pop();
|
||||
Node* node = NodeList::getInstance()->nodeWithUUID(nodeUUID);
|
||||
|
||||
if (node->getActiveSocket() != NULL) {
|
||||
sockaddr* nodeAddress = node->getActiveSocket();
|
||||
queuePacketForSending(*nodeAddress, bufferOut, sizeOut);
|
||||
nodeCount++;
|
||||
// remove it from the set
|
||||
_nodesRequestingJurisdictions.erase(nodeIterator);
|
||||
}
|
||||
}
|
||||
unlockRequestingNodes();
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#ifndef __shared__JurisdictionSender__
|
||||
#define __shared__JurisdictionSender__
|
||||
|
||||
#include <set>
|
||||
#include <queue>
|
||||
|
||||
#include <PacketSender.h>
|
||||
#include <ReceivedPacketProcessor.h>
|
||||
|
@ -44,6 +44,6 @@ protected:
|
|||
private:
|
||||
pthread_mutex_t _requestingNodeMutex;
|
||||
JurisdictionMap* _jurisdictionMap;
|
||||
std::set<QUuid> _nodesRequestingJurisdictions;
|
||||
std::queue<QUuid> _nodesRequestingJurisdictions;
|
||||
};
|
||||
#endif // __shared__JurisdictionSender__
|
||||
|
|
Loading…
Reference in a new issue