diff --git a/src/RpcServer.cpp b/src/RpcServer.cpp index ad107cd3f0..810b35e75c 100644 --- a/src/RpcServer.cpp +++ b/src/RpcServer.cpp @@ -71,8 +71,14 @@ bool RpcServer::PollRpc(bool blocking, double time_out, RpcCallInfo* call_info) if (time_out < 0) { m_poll_cond.wait(lock); } else { +#if defined(_MSC_VER) && _MSC_VER < 1900 auto timeout_time = std::chrono::steady_clock::now() + - std::chrono::duration(time_out); + std::chrono::duration(static_cast + (time_out * 1e9)); +#else + auto timeout_time = std::chrono::steady_clock::now() + + std::chrono::duration(time_out); +#endif auto timed_out = m_poll_cond.wait_until(lock, timeout_time); if (timed_out == std::cv_status::timeout) { return false; diff --git a/src/Storage.cpp b/src/Storage.cpp index a467f96da1..b5db2d6a5f 100644 --- a/src/Storage.cpp +++ b/src/Storage.cpp @@ -1428,8 +1428,14 @@ bool Storage::GetRpcResult(bool blocking, unsigned int call_uid, double time_out if (time_out < 0) { m_rpc_results_cond.wait(lock); } else { +#if defined(_MSC_VER) && _MSC_VER < 1900 + auto timeout_time = std::chrono::steady_clock::now() + + std::chrono::duration(static_cast + (time_out * 1e9)); +#else auto timeout_time = std::chrono::steady_clock::now() + std::chrono::duration(time_out); +#endif auto timed_out = m_rpc_results_cond.wait_until(lock, timeout_time); if (timed_out == std::cv_status::timeout) { m_rpc_blocking_calls.erase(call_uid);