chiark / gitweb /
reduce lock scope
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 1 Aug 2020 21:49:58 +0000 (22:49 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 1 Aug 2020 21:49:58 +0000 (22:49 +0100)
src/global.rs

index 78b915eda577ddacedbfd72062ee71df0cef7cd9..3a55467c7c4684939bffb16f81a615b3598d2eab 100644 (file)
@@ -554,15 +554,16 @@ impl InstanceGuard<'_> {
   #[throws(ServerFailure)]
   fn save_access_now(&mut self) {
     self.save_something("a-", |s,w| {
-      let global_players = GLOBAL.players.read().unwrap();
-      let tokens_players : Vec<(&str, PlayerId)> =
+      let tokens_players : Vec<(&str, PlayerId)> = {
+        let global_players = GLOBAL.players.read().unwrap();
         s.c.g.tokens_players.tr
-        .iter()
-        .map(|token|
-             global_players.get(token)
-             .map(|player| (token.0.as_str(), player.ident)))
-        .flatten()
-        .collect();
+          .iter()
+          .map(|token|
+               global_players.get(token)
+               .map(|player| (token.0.as_str(), player.ident)))
+          .flatten()
+          .collect()
+      };
       let isa = InstanceSaveAccesses { tokens_players };
       rmp_serde::encode::write_named(w, &isa)
     })?;