get rid of gettickcount

This commit is contained in:
Akash Mozumdar 2021-07-01 13:35:33 -06:00
parent f8874bf8a0
commit d64a2c05b4
3 changed files with 6 additions and 6 deletions

View File

@ -63,7 +63,7 @@ void TextThread::Push(BYTE* data, int length)
else if (auto converted = StringToWideString(std::string((char*)data, length), hp.codepage ? hp.codepage : Host::defaultCodepage)) buffer.append(converted.value()); else if (auto converted = StringToWideString(std::string((char*)data, length), hp.codepage ? hp.codepage : Host::defaultCodepage)) buffer.append(converted.value());
else Host::AddConsoleOutput(INVALID_CODEPAGE); else Host::AddConsoleOutput(INVALID_CODEPAGE);
if (hp.type & FULL_STRING) buffer.push_back(L'\n'); if (hp.type & FULL_STRING) buffer.push_back(L'\n');
lastPushTime = GetTickCount(); lastPushTime = GetTickCount64();
if (filterRepetition) if (filterRepetition)
{ {
@ -87,7 +87,7 @@ void TextThread::Push(const wchar_t* data)
{ {
std::scoped_lock lock(bufferMutex); std::scoped_lock lock(bufferMutex);
// not sure if this should filter repetition // not sure if this should filter repetition
lastPushTime = GetTickCount(); lastPushTime = GetTickCount64();
buffer += data; buffer += data;
} }
@ -110,7 +110,7 @@ void TextThread::Flush()
std::scoped_lock lock(bufferMutex); std::scoped_lock lock(bufferMutex);
if (buffer.empty()) return; if (buffer.empty()) return;
if (buffer.size() > maxBufferSize || GetTickCount() - lastPushTime > flushDelay) if (buffer.size() > maxBufferSize || GetTickCount64() - lastPushTime > flushDelay)
{ {
AddSentence(std::move(buffer)); AddSentence(std::move(buffer));
buffer.clear(); buffer.clear();

View File

@ -36,7 +36,7 @@ private:
BYTE leadByte = 0; BYTE leadByte = 0;
std::unordered_set<wchar_t> repeatingChars; std::unordered_set<wchar_t> repeatingChars;
std::mutex bufferMutex; std::mutex bufferMutex;
DWORD lastPushTime = 0; DWORD64 lastPushTime = 0;
Synchronized<std::vector<std::wstring>> queuedSentences; Synchronized<std::vector<std::wstring>> queuedSentences;
struct TimerDeleter { void operator()(HANDLE h) { DeleteTimerQueueTimer(NULL, h, INVALID_HANDLE_VALUE); } }; struct TimerDeleter { void operator()(HANDLE h) { DeleteTimerQueueTimer(NULL, h, INVALID_HANDLE_VALUE); } };
AutoHandle<TimerDeleter> timer = NULL; AutoHandle<TimerDeleter> timer = NULL;

View File

@ -154,7 +154,7 @@ bool ProcessSentence(std::wstring& sentence, SentenceInfo sentenceInfo)
public: public:
bool Request() bool Request()
{ {
DWORD current = GetTickCount(), token; DWORD64 current = GetTickCount64(), token;
while (tokens.try_pop(token)) if (token > current - rateLimitTimespan) while (tokens.try_pop(token)) if (token > current - rateLimitTimespan)
{ {
tokens.push(token); // popped one too many tokens.push(token); // popped one too many
@ -165,7 +165,7 @@ bool ProcessSentence(std::wstring& sentence, SentenceInfo sentenceInfo)
} }
private: private:
concurrency::concurrent_priority_queue<DWORD, std::greater<DWORD>> tokens; concurrency::concurrent_priority_queue<DWORD64, std::greater<DWORD64>> tokens;
} rateLimiter; } rateLimiter;
auto Trim = [](std::wstring& text) auto Trim = [](std::wstring& text)