浏览代码

Remove the extra layer of Arc on Raft from tests.

Jing Yang 3 年之前
父节点
当前提交
6b42baa245
共有 3 个文件被更改,包括 8 次插入12 次删除
  1. 1 1
      test_configs/src/kvraft/config.rs
  2. 0 1
      test_configs/src/raft/config.rs
  3. 7 10
      test_configs/src/rpcs.rs

+ 1 - 1
test_configs/src/kvraft/config.rs

@@ -58,7 +58,7 @@ impl Config {
             KVServer::new(clients, index, persister, Some(self.maxraftstate));
         self.state.lock().kv_servers[index].replace(kv.clone());
 
-        let raft = Arc::new(kv.raft().clone());
+        let raft = kv.raft().clone();
 
         register_server(raft, Self::server_name(index), self.network.as_ref())?;
 

+ 0 - 1
test_configs/src/raft/config.rs

@@ -321,7 +321,6 @@ impl Config {
         );
         self.state.lock().rafts[index].replace(raft.clone());
 
-        let raft = Arc::new(raft);
         register_server(raft, Self::server_name(index), self.network.as_ref())?;
         Ok(())
     }

+ 7 - 10
test_configs/src/rpcs.rs

@@ -145,11 +145,10 @@ where
 }
 
 pub fn register_server<
-    Command: 'static + Clone + Serialize + DeserializeOwned,
-    R: 'static + AsRef<Raft<Command>> + Send + Sync + Clone,
+    Command: 'static + Clone + Send + Serialize + DeserializeOwned,
     S: AsRef<str>,
 >(
-    raft: R,
+    raft: Raft<Command>,
     name: S,
     network: &Mutex<Network>,
 ) -> std::io::Result<()> {
@@ -159,19 +158,17 @@ pub fn register_server<
 
     server.register_rpc_handler(REQUEST_VOTE_RPC.to_owned(), {
         let raft = raft.clone();
-        make_rpc_handler(move |args| raft.as_ref().process_request_vote(args))
+        make_rpc_handler(move |args| raft.process_request_vote(args))
     })?;
 
     server.register_rpc_handler(APPEND_ENTRIES_RPC.to_owned(), {
         let raft = raft.clone();
-        make_rpc_handler(move |args| raft.as_ref().process_append_entries(args))
+        make_rpc_handler(move |args| raft.process_append_entries(args))
     })?;
 
     server.register_rpc_handler(
         INSTALL_SNAPSHOT_RPC.to_owned(),
-        make_rpc_handler(move |args| {
-            raft.as_ref().process_install_snapshot(args)
-        }),
+        make_rpc_handler(move |args| raft.process_install_snapshot(args)),
     )?;
 
     network.add_server(server_name, server);
@@ -258,14 +255,14 @@ mod tests {
                 .lock()
                 .make_client("test-basic-message", name.to_owned());
 
-            let raft = Arc::new(Raft::new(
+            let raft = Raft::new(
                 vec![RpcClient(client)],
                 0,
                 Arc::new(DoNothingPersister),
                 |_: ApplyCommandMessage<i32>| {},
                 None,
                 crate::utils::NO_SNAPSHOT,
-            ));
+            );
             register_server(raft, name, network.as_ref())?;
 
             let client = network