Merge pull request #5375 from birarda/protocol

repairs to early return for sendNackPackets
This commit is contained in:
samcake 2015-07-20 16:21:55 -07:00
commit e63d122f2a

View file

@ -2693,7 +2693,7 @@ int Application::sendNackPackets() {
// if there are octree packets from this node that are waiting to be processed, // if there are octree packets from this node that are waiting to be processed,
// don't send a NACK since the missing packets may be among those waiting packets. // don't send a NACK since the missing packets may be among those waiting packets.
if (_octreeProcessor.hasPacketsToProcessFrom(nodeUUID)) { if (_octreeProcessor.hasPacketsToProcessFrom(nodeUUID)) {
packetsSent = 0; return;
} }
_octreeSceneStatsLock.lockForRead(); _octreeSceneStatsLock.lockForRead();
@ -2701,16 +2701,16 @@ int Application::sendNackPackets() {
// retreive octree scene stats of this node // retreive octree scene stats of this node
if (_octreeServerSceneStats.find(nodeUUID) == _octreeServerSceneStats.end()) { if (_octreeServerSceneStats.find(nodeUUID) == _octreeServerSceneStats.end()) {
_octreeSceneStatsLock.unlock(); _octreeSceneStatsLock.unlock();
packetsSent = 0; return;
} }
// get sequence number stats of node, prune its missing set, and make a copy of the missing set // get sequence number stats of node, prune its missing set, and make a copy of the missing set
SequenceNumberStats& sequenceNumberStats = _octreeServerSceneStats[nodeUUID].getIncomingOctreeSequenceNumberStats(); SequenceNumberStats& sequenceNumberStats = _octreeServerSceneStats[nodeUUID].getIncomingOctreeSequenceNumberStats();
sequenceNumberStats.pruneMissingSet(); sequenceNumberStats.pruneMissingSet();
const QSet<OCTREE_PACKET_SEQUENCE> missingSequenceNumbers = sequenceNumberStats.getMissingSet(); const QSet<OCTREE_PACKET_SEQUENCE> missingSequenceNumbers = sequenceNumberStats.getMissingSet();
_octreeSceneStatsLock.unlock(); _octreeSceneStatsLock.unlock();
// construct nack packet(s) for this node // construct nack packet(s) for this node
auto it = missingSequenceNumbers.constBegin(); auto it = missingSequenceNumbers.constBegin();
while (it != missingSequenceNumbers.constEnd()) { while (it != missingSequenceNumbers.constEnd()) {
@ -2718,10 +2718,10 @@ int Application::sendNackPackets() {
nackPacketList.writePrimitive(missingNumber); nackPacketList.writePrimitive(missingNumber);
++it; ++it;
} }
if (nackPacketList.getNumPackets()) { if (nackPacketList.getNumPackets()) {
packetsSent += nackPacketList.getNumPackets(); packetsSent += nackPacketList.getNumPackets();
// send the packet list // send the packet list
nodeList->sendPacketList(nackPacketList, *node); nodeList->sendPacketList(nackPacketList, *node);
} }