Don't grab subTree outside lock

This commit is contained in:
Atlante45 2015-12-01 19:33:44 -08:00
parent 4aaa9ca02f
commit 0bc914bf19

View file

@ -417,10 +417,15 @@ int OctreeSendThread::packetDistributor(OctreeQueryNode* nodeData, bool viewFrus
quint64 startInside = usecTimestampNow();
bool lastNodeDidntFit = false; // assume each node fits
if (OctreeElementPointer subTree = nodeData->elementBag.extract()) {
if (!nodeData->elementBag.isEmpty()) {
quint64 lockWaitStart = usecTimestampNow();
_myServer->getOctree()->withReadLock([&]{
OctreeElementPointer subTree = nodeData->elementBag.extract();
if (!subTree) {
return;
}
quint64 lockWaitEnd = usecTimestampNow();
lockWaitElapsedUsec = (float)(lockWaitEnd - lockWaitStart);
quint64 encodeStart = usecTimestampNow();