From 1491216962d21fb6d273156af2a9ee21793b2592 Mon Sep 17 00:00:00 2001 From: wangyix Date: Fri, 13 Jun 2014 09:58:45 -0700 Subject: [PATCH] Revert "added locking on _singleSenderStats; untested!" This reverts commit c542da97076ba0d27f4e191ae5d8249dbf8afe7e. --- .../src/octree/OctreeInboundPacketProcessor.cpp | 8 +------- .../src/octree/OctreeInboundPacketProcessor.h | 3 --- assignment-client/src/octree/OctreeSendThread.cpp | 13 +++++++------ assignment-client/src/octree/OctreeServer.h | 2 +- 4 files changed, 9 insertions(+), 17 deletions(-) diff --git a/assignment-client/src/octree/OctreeInboundPacketProcessor.cpp b/assignment-client/src/octree/OctreeInboundPacketProcessor.cpp index 1912103bf0..c1c564b58c 100644 --- a/assignment-client/src/octree/OctreeInboundPacketProcessor.cpp +++ b/assignment-client/src/octree/OctreeInboundPacketProcessor.cpp @@ -25,9 +25,7 @@ OctreeInboundPacketProcessor::OctreeInboundPacketProcessor(OctreeServer* myServe _totalProcessTime(0), _totalLockWaitTime(0), _totalElementsInPacket(0), - _totalPackets(0), - _singleSenderStats(), - _singleSenderStatsLock() + _totalPackets(0) { } @@ -38,9 +36,7 @@ void OctreeInboundPacketProcessor::resetStats() { _totalElementsInPacket = 0; _totalPackets = 0; - _singleSenderStatsLock.lockForWrite(); _singleSenderStats.clear(); - _singleSenderStatsLock.unlock(); } @@ -147,9 +143,7 @@ void OctreeInboundPacketProcessor::trackInboundPacket(const QUuid& nodeUUID, uns if (_singleSenderStats.find(nodeUUID) == _singleSenderStats.end()) { SingleSenderStats stats; stats.trackInboundPacket(sequence, transitTime, editsInPacket, processTime, lockWaitTime); - _singleSenderStatsLock.lockForWrite(); _singleSenderStats[nodeUUID] = stats; - _singleSenderStatsLock.unlock(); } else { SingleSenderStats& stats = _singleSenderStats[nodeUUID]; stats.trackInboundPacket(sequence, transitTime, editsInPacket, processTime, lockWaitTime); diff --git a/assignment-client/src/octree/OctreeInboundPacketProcessor.h b/assignment-client/src/octree/OctreeInboundPacketProcessor.h index c9760dcc5c..3e3f5f2dcb 100644 --- a/assignment-client/src/octree/OctreeInboundPacketProcessor.h +++ b/assignment-client/src/octree/OctreeInboundPacketProcessor.h @@ -71,8 +71,6 @@ public: void resetStats(); - void lockSingleSenderStatsForRead() { _singleSenderStatsLock.lockForRead(); } - void unlockSingleSenderStats() { _singleSenderStatsLock.unlock(); } NodeToSenderStatsMap& getSingleSenderStats() { return _singleSenderStats; } const NodeToSenderStatsMap& getSingleSenderStats() const { return _singleSenderStats; } @@ -93,6 +91,5 @@ private: quint64 _totalPackets; NodeToSenderStatsMap _singleSenderStats; - QReadWriteLock _singleSenderStatsLock; }; #endif // hifi_OctreeInboundPacketProcessor_h diff --git a/assignment-client/src/octree/OctreeSendThread.cpp b/assignment-client/src/octree/OctreeSendThread.cpp index 51696e35ea..6b1119fca1 100644 --- a/assignment-client/src/octree/OctreeSendThread.cpp +++ b/assignment-client/src/octree/OctreeSendThread.cpp @@ -120,7 +120,7 @@ int OctreeSendThread::sendNack(OctreeQueryNode* nodeData) { return 0; } - OctreeInboundPacketProcessor* myServerPacketProcessor = _myServer->getInboundPacketProcessor(); + const OctreeInboundPacketProcessor* myServerPacketProcessor = _myServer->getInboundPacketProcessor(); // if there are packets from _node that are waiting to be processed, // don't send a NACK since the missing packets may be among those waiting packets. @@ -128,15 +128,18 @@ int OctreeSendThread::sendNack(OctreeQueryNode* nodeData) { return 0; } - myServerPacketProcessor->lockSingleSenderStatsForRead(); + // lock unlock required ????????? prolly: _singleSenderStats may have our node's entry deleted during this or something + // maybe just make a copy instead!! - const QSet& missingSequenceNumbersFromNode = myServerPacketProcessor + // lock + + const QSet missingSequenceNumbersFromNode = myServerPacketProcessor ->getSingleSenderStats().at(_node->getUUID()).getMissingSequenceNumbers(); // check if there are any sequence numbers that need to be nacked int numSequenceNumbersAvailable = missingSequenceNumbersFromNode.size(); if (numSequenceNumbersAvailable == 0) { - myServerPacketProcessor->unlockSingleSenderStats(); + //unlock return 0; } @@ -167,8 +170,6 @@ int OctreeSendThread::sendNack(OctreeQueryNode* nodeData) { dataAt += sizeof(unsigned short int); } - myServerPacketProcessor->unlockSingleSenderStats(); - // send it OctreeServer::didCallWriteDatagram(this); NodeList::getInstance()->writeDatagram((char*)packet, dataAt - packet, _node); diff --git a/assignment-client/src/octree/OctreeServer.h b/assignment-client/src/octree/OctreeServer.h index 22b2da0682..39536c0981 100644 --- a/assignment-client/src/octree/OctreeServer.h +++ b/assignment-client/src/octree/OctreeServer.h @@ -52,7 +52,7 @@ public: int getPacketsTotalPerInterval() const { return _packetsTotalPerInterval; } int getPacketsTotalPerSecond() const { return getPacketsTotalPerInterval() * INTERVALS_PER_SECOND; } - OctreeInboundPacketProcessor* getInboundPacketProcessor() { return _octreeInboundPacketProcessor; } + const OctreeInboundPacketProcessor* getInboundPacketProcessor() const { return _octreeInboundPacketProcessor; } static int getCurrentClientCount() { return _clientCount; } static void clientConnected() { _clientCount++; }