Fixed integer overflow problems.
The event would overflow when requesting a 60 minute timeout.
This commit is contained in:
parent
8ad1afcc1b
commit
c65bb6341d
@ -35,11 +35,11 @@ void cEvent::Wait(void)
|
||||
|
||||
|
||||
|
||||
bool cEvent::Wait(int a_TimeoutMSec)
|
||||
bool cEvent::Wait(unsigned a_TimeoutMSec)
|
||||
{
|
||||
std::chrono::system_clock::time_point dst = std::chrono::system_clock::now() + std::chrono::microseconds(a_TimeoutMSec * 1000);
|
||||
auto dst = std::chrono::system_clock::now() + std::chrono::milliseconds(a_TimeoutMSec);
|
||||
std::unique_lock<std::mutex> Lock(m_Mutex); // We assume that this lock is acquired without much delay - we are the only user of the mutex
|
||||
while (m_ShouldWait && (std::chrono::system_clock::now() < dst))
|
||||
while (m_ShouldWait && (std::chrono::system_clock::now() <= dst))
|
||||
{
|
||||
switch (m_CondVar.wait_until(Lock, dst))
|
||||
{
|
||||
|
@ -32,7 +32,7 @@ public:
|
||||
|
||||
/** Waits for the event until either it is signalled, or the (relative) timeout is passed.
|
||||
Returns true if the event was signalled, false if the timeout was hit or there was an error. */
|
||||
bool Wait(int a_TimeoutMSec);
|
||||
bool Wait(unsigned a_TimeoutMSec);
|
||||
|
||||
private:
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user