Fixed Win32 QPC timestamp diff that caused extraordinarily large inter-packet timing
This commit is contained in:
parent
87ee8244fc
commit
31c7f08e7c
@ -59,7 +59,7 @@ static void inline getTimeStamp(TimeStamp* stamp)
|
|||||||
|
|
||||||
static long inline udiffTimeStamp(const TimeStamp *start, const TimeStamp *end)
|
static long inline udiffTimeStamp(const TimeStamp *start, const TimeStamp *end)
|
||||||
{
|
{
|
||||||
if (end->QuadPart > start->QuadPart)
|
if (end->QuadPart >= start->QuadPart)
|
||||||
return (end->QuadPart - start->QuadPart)*long(1e6)/gTicksFreq;
|
return (end->QuadPart - start->QuadPart)*long(1e6)/gTicksFreq;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -531,6 +531,7 @@ _restart:
|
|||||||
getTimeStamp(&ovrEnd);
|
getTimeStamp(&ovrEnd);
|
||||||
overHead += seq->usecDuration_
|
overHead += seq->usecDuration_
|
||||||
- udiffTimeStamp(&ovrStart, &ovrEnd);
|
- udiffTimeStamp(&ovrStart, &ovrEnd);
|
||||||
|
Q_ASSERT(overHead <= 0);
|
||||||
}
|
}
|
||||||
if (stop_)
|
if (stop_)
|
||||||
ret = -2;
|
ret = -2;
|
||||||
@ -614,6 +615,7 @@ int PcapPort::PortTransmitter::sendQueueTransmit(pcap_t *p,
|
|||||||
getTimeStamp(&ovrEnd);
|
getTimeStamp(&ovrEnd);
|
||||||
|
|
||||||
overHead -= udiffTimeStamp(&ovrStart, &ovrEnd);
|
overHead -= udiffTimeStamp(&ovrStart, &ovrEnd);
|
||||||
|
Q_ASSERT(overHead <= 0);
|
||||||
usec += overHead;
|
usec += overHead;
|
||||||
if (usec > 0)
|
if (usec > 0)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user