Browse Source

Minor code refactor related to _clone.

Jing Yang 3 năm trước cách đây
mục cha
commit
1e4fb64fcb

+ 4 - 2
kvraft/src/server.rs

@@ -122,7 +122,6 @@ impl KVServer {
             let _ = tx.send(message);
             let _ = tx.send(message);
         };
         };
         let snapshot_holder = Arc::new(SnapshotHolder::default());
         let snapshot_holder = Arc::new(SnapshotHolder::default());
-        let snapshot_holder_clone = snapshot_holder.clone();
         let ret = Arc::new(Self {
         let ret = Arc::new(Self {
             me,
             me,
             state: Mutex::new(KVServerState::default()),
             state: Mutex::new(KVServerState::default()),
@@ -132,7 +131,10 @@ impl KVServer {
                 persister,
                 persister,
                 apply_command,
                 apply_command,
                 max_state_size_bytes,
                 max_state_size_bytes,
-                move |index| snapshot_holder_clone.request_snapshot(index),
+                {
+                    let snapshot_holder = snapshot_holder.clone();
+                    move |index| snapshot_holder.request_snapshot(index)
+                },
             ),
             ),
             keep_running: AtomicBool::new(true),
             keep_running: AtomicBool::new(true),
             #[cfg(all(not(test), feature = "integration-test"))]
             #[cfg(all(not(test), feature = "integration-test"))]

+ 2 - 4
test_configs/src/raft/config.rs

@@ -310,14 +310,12 @@ impl Config {
         }
         }
         let persister = self.log.lock().saved[index].clone();
         let persister = self.log.lock().saved[index].clone();
 
 
-        let log_clone = self.log.clone();
+        let log = self.log.clone();
         let raft = Raft::new(
         let raft = Raft::new(
             clients,
             clients,
             index,
             index,
             persister,
             persister,
-            move |message| {
-                Self::apply_command(log_clone.clone(), index, message)
-            },
+            move |message| Self::apply_command(log.clone(), index, message),
             None,
             None,
             NO_SNAPSHOT,
             NO_SNAPSHOT,
         );
         );

+ 1 - 0
test_configs/src/rpcs.rs

@@ -192,6 +192,7 @@ pub fn register_kv_server<
 
 
     server.register_async_rpc_handler(GET.to_owned(), {
     server.register_async_rpc_handler(GET.to_owned(), {
         let kv = kv.clone();
         let kv = kv.clone();
+        // Note: make_async_rpc_handler expects a FnOnce.
         make_async_rpc_handler(move |args| async move {
         make_async_rpc_handler(move |args| async move {
             kv.as_ref().get(args).await
             kv.as_ref().get(args).await
         })
         })