summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--windows/winnet/src/winnet/routing/defaultroutemonitor.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/windows/winnet/src/winnet/routing/defaultroutemonitor.cpp b/windows/winnet/src/winnet/routing/defaultroutemonitor.cpp
index 9b063de850..523c2d7ba0 100644
--- a/windows/winnet/src/winnet/routing/defaultroutemonitor.cpp
+++ b/windows/winnet/src/winnet/routing/defaultroutemonitor.cpp
@@ -29,13 +29,7 @@ DefaultRouteMonitor::DefaultRouteMonitor
TWO_SECOND_INTERFERENCE
))
{
- try
- {
- m_bestRoute = GetBestDefaultRoute(m_family);
- }
- catch (...)
- {
- }
+ std::scoped_lock<std::mutex> lock(m_evaluationLock);
auto status = NotifyRouteChange2(AF_UNSPEC, RouteChangeCallback, this, FALSE, &m_routeNotificationHandle);
@@ -52,6 +46,14 @@ DefaultRouteMonitor::DefaultRouteMonitor
CancelMibChangeNotify2(m_routeNotificationHandle);
THROW_WINDOWS_ERROR(status, "Register for network interface change notifications");
}
+
+ try
+ {
+ m_bestRoute = GetBestDefaultRoute(m_family);
+ }
+ catch (...)
+ {
+ }
}
DefaultRouteMonitor::~DefaultRouteMonitor()