mirror of
https://github.com/overte-org/overte.git
synced 2025-04-21 04:03:59 +02:00
Use locking for the OctreePacketProcessor additions
This commit is contained in:
parent
3d390203e2
commit
5315b020ec
2 changed files with 9 additions and 3 deletions
|
@ -115,6 +115,8 @@ void OctreePacketProcessor::processPacket(QSharedPointer<ReceivedMessage> messag
|
|||
// Read sequence #
|
||||
OCTREE_PACKET_SEQUENCE completionNumber;
|
||||
message->readPrimitive(&completionNumber);
|
||||
|
||||
Locker lock(_completionMutex);
|
||||
_completionSequenceNumber = completionNumber;
|
||||
_completionSequenceNumberValid = true;
|
||||
} break;
|
||||
|
@ -126,6 +128,7 @@ void OctreePacketProcessor::processPacket(QSharedPointer<ReceivedMessage> messag
|
|||
}
|
||||
|
||||
void OctreePacketProcessor::resetCompletionSequenceNumber() {
|
||||
Locker lock(_completionMutex);
|
||||
_completionSequenceNumber = false;
|
||||
}
|
||||
|
||||
|
@ -140,7 +143,8 @@ namespace {
|
|||
}
|
||||
|
||||
bool OctreePacketProcessor::octreeSequenceIsComplete(int sequenceNumber) const {
|
||||
const int completionSequenceNumber = _completionSequenceNumber;
|
||||
Locker lock(_completionMutex);
|
||||
// If we've received the flagged seq # and the current one is >= it.
|
||||
return _completionSequenceNumberValid &&
|
||||
!lessThanWraparound<OCTREE_PACKET_SEQUENCE>(completionSequenceNumber, sequenceNumber);
|
||||
!lessThanWraparound<OCTREE_PACKET_SEQUENCE>(_completionSequenceNumber, sequenceNumber);
|
||||
}
|
||||
|
|
|
@ -37,8 +37,10 @@ private slots:
|
|||
void handleOctreePacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer senderNode);
|
||||
|
||||
private:
|
||||
mutable std::mutex _completionMutex;
|
||||
using Locker = std::lock_guard<std::mutex>;
|
||||
bool _completionSequenceNumberValid { false };
|
||||
std::atomic<int> _completionSequenceNumber { 0 };
|
||||
int _completionSequenceNumber { 0 };
|
||||
|
||||
};
|
||||
#endif // hifi_OctreePacketProcessor_h
|
||||
|
|
Loading…
Reference in a new issue