Fixed eternal sleeping bug in outputs, fixed some missed thisPacket invalid pointer issues.

This commit is contained in:
Thulinma 2016-10-11 15:12:12 +02:00
parent 4963aac941
commit 82a2fb3367

View file

@ -673,7 +673,8 @@ namespace Mist {
//slow down processing, if real time speed is wanted //slow down processing, if real time speed is wanted
if (realTime){ if (realTime){
while (thisPacket.getTime() > (((Util::getMS() - firstTime)*1000)+maxSkipAhead)/realTime && config->is_active && myConn) { uint8_t i = 6;
while (--i && thisPacket.getTime() > (((Util::getMS() - firstTime)*1000)+maxSkipAhead)/realTime && config->is_active && myConn) {
Util::sleep(std::min(thisPacket.getTime() - (((Util::getMS() - firstTime)*1000)+minSkipAhead)/realTime, 1000llu)); Util::sleep(std::min(thisPacket.getTime() - (((Util::getMS() - firstTime)*1000)+minSkipAhead)/realTime, 1000llu));
stats(); stats();
} }
@ -881,6 +882,7 @@ namespace Mist {
//The next key showed up on another page! //The next key showed up on another page!
//We've simply reached the end of the page. Load the next key = next page. //We've simply reached the end of the page. Load the next key = next page.
loadPageForKey(nxt.tid, ++nxtKeyNum[nxt.tid]); loadPageForKey(nxt.tid, ++nxtKeyNum[nxt.tid]);
thisPacket.null();
nxt.offset = 0; nxt.offset = 0;
if (nProxy.curPage.count(nxt.tid) && nProxy.curPage[nxt.tid].mapped){ if (nProxy.curPage.count(nxt.tid) && nProxy.curPage[nxt.tid].mapped){
unsigned long long nextTime = getDTSCTime(nProxy.curPage[nxt.tid].mapped, nxt.offset); unsigned long long nextTime = getDTSCTime(nProxy.curPage[nxt.tid].mapped, nxt.offset);
@ -896,7 +898,6 @@ namespace Mist {
MEDIUM_MSG("Next page for track %u starts at %llu.", nxt.tid, nxt.time); MEDIUM_MSG("Next page for track %u starts at %llu.", nxt.tid, nxt.time);
} }
}else{ }else{
thisPacket.null();
dropTrack(nxt.tid, "page load failure"); dropTrack(nxt.tid, "page load failure");
} }
return false; return false;