diff options
-rw-r--r-- | src/mongo/executor/network_interface_asio.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/mongo/executor/network_interface_asio.cpp b/src/mongo/executor/network_interface_asio.cpp index 8138bf43798..cf5d82c98b3 100644 --- a/src/mongo/executor/network_interface_asio.cpp +++ b/src/mongo/executor/network_interface_asio.cpp @@ -32,6 +32,8 @@ #include "mongo/executor/network_interface_asio.h" +#include <asio/system_timer.hpp> + #include <utility> #include "mongo/executor/async_stream_factory.h" @@ -406,12 +408,9 @@ void NetworkInterfaceASIO::cancelAllCommands() { } } -const auto kMaxTimerDuration = duration_cast<Milliseconds>(asio::steady_timer::duration::max()); - void NetworkInterfaceASIO::setAlarm(Date_t when, const stdx::function<void()>& action) { // "alarm" must stay alive until it expires, hence the shared_ptr. - auto alarm = std::make_shared<asio::steady_timer>(_io_service, - std::min(when - now(), kMaxTimerDuration)); + auto alarm = std::make_shared<asio::system_timer>(_io_service, when.toSystemTimePoint()); alarm->async_wait([alarm, this, action](std::error_code ec) { if (!ec) { return action(); |