summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2021-10-05 11:18:12 +0200
committerDavid Lönnhager <david.l@mullvad.net>2021-10-05 16:07:47 +0200
commita67a91e33f8bc44d25003b6d9d36b09eba8a3efa (patch)
tree1aafc373af9338917cc7aae105694b8c37457449
parentd6a10edc854e5b63be110c52bbbb68111c31deab (diff)
downloadmullvadvpn-a67a91e33f8bc44d25003b6d9d36b09eba8a3efa.tar.xz
mullvadvpn-a67a91e33f8bc44d25003b6d9d36b09eba8a3efa.zip
Fix mutex/await warning
-rw-r--r--talpid-core/src/dns/linux/systemd_resolved.rs18
1 files changed, 13 insertions, 5 deletions
diff --git a/talpid-core/src/dns/linux/systemd_resolved.rs b/talpid-core/src/dns/linux/systemd_resolved.rs
index a9227c2628..c47bd7ee63 100644
--- a/talpid-core/src/dns/linux/systemd_resolved.rs
+++ b/talpid-core/src/dns/linux/systemd_resolved.rs
@@ -81,7 +81,6 @@ impl SystemdResolved {
{
- let mut initial_states = self.initial_states.lock().unwrap();
for (iface_index, iface_config) in &initial_config {
let initial_state = match self.dbus_interface.get_dns(*iface_index).await {
Ok(state) => state,
@@ -98,7 +97,12 @@ impl SystemdResolved {
last_result = Err(Error::SystemdResolvedError(error));
break;
}
- initial_states.insert(*iface_index, initial_state);
+ {
+ self.initial_states
+ .lock()
+ .unwrap()
+ .insert(*iface_index, initial_state);
+ }
}
}
@@ -293,8 +297,13 @@ impl SystemdResolved {
let _ = join_handle.await;
}
- let mut initial_states = self.initial_states.lock().unwrap();
- for (iface, state) in &*initial_states {
+ let initial_states = {
+ let mut initial_states = self.initial_states.lock().unwrap();
+ let states = initial_states.clone();
+ initial_states.clear();
+ states
+ };
+ for (iface, state) in &initial_states {
let result = if *iface == self.tunnel_index {
self.dbus_interface.revert_link(state.clone()).await
} else {
@@ -307,7 +316,6 @@ impl SystemdResolved {
);
}
}
- initial_states.clear();
self.current_config.lock().unwrap().clear();