Fix edge case in seeking where seek happens at exact time of packet header write
This commit is contained in:
parent
a71e81eee2
commit
0864a6324b
1 changed files with 10 additions and 0 deletions
|
@ -772,6 +772,16 @@ namespace Mist{
|
||||||
}
|
}
|
||||||
// don't print anything for empty packets - not sign of corruption, just unfinished stream.
|
// don't print anything for empty packets - not sign of corruption, just unfinished stream.
|
||||||
if (curPage[tid].mapped[tmp.offset] != 0){
|
if (curPage[tid].mapped[tmp.offset] != 0){
|
||||||
|
//There's a chance the packet header was written in between this check and the previous.
|
||||||
|
//Let's check one more time before aborting
|
||||||
|
tmpPack.reInit(mpd + tmp.offset, 0, true);
|
||||||
|
tmp.time = tmpPack.getTime();
|
||||||
|
if (tmpPack){
|
||||||
|
HIGH_MSG("Sought to time %" PRIu64 " in %s", tmp.time, curPage[tid].name.c_str());
|
||||||
|
tmp.partIndex = M.getPartIndex(tmpPack.getTime(), tmp.tid);
|
||||||
|
buffer.insert(tmp);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
FAIL_MSG("Noes! Couldn't find packet on track %zu because of some kind of corruption error "
|
FAIL_MSG("Noes! Couldn't find packet on track %zu because of some kind of corruption error "
|
||||||
"or somesuch.",
|
"or somesuch.",
|
||||||
tid);
|
tid);
|
||||||
|
|
Loading…
Add table
Reference in a new issue