From 4d69fb2e4139ccd1b6287ae7a98c20d2eca7740e Mon Sep 17 00:00:00 2001 From: aleksey-sergey Date: Tue, 29 Nov 2016 01:06:00 +0300 Subject: [PATCH] fix timeouts handling on Unix systems (#142) fixed "singed long" overflow that took place on attempt to use ~3000ms or bigger timeouts on Unix systems --- src/impl/unix.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/impl/unix.cc b/src/impl/unix.cc index 0ff251e..50cc790 100755 --- a/src/impl/unix.cc +++ b/src/impl/unix.cc @@ -62,7 +62,7 @@ MillisecondTimer::MillisecondTimer (const uint32_t millis) int64_t tv_nsec = expiry.tv_nsec + (millis * 1e6); if (tv_nsec >= 1e9) { int64_t sec_diff = tv_nsec / static_cast (1e9); - expiry.tv_nsec = tv_nsec - static_cast (1e9 * sec_diff); + expiry.tv_nsec %= static_cast(1e9); expiry.tv_sec += sec_diff; } else { expiry.tv_nsec = tv_nsec;