Jelajahi Sumber

Use Acquire/Release in tests.

Jing Yang 3 tahun lalu
induk
melakukan
35cce92ab3
3 mengubah file dengan 8 tambahan dan 8 penghapusan
  1. 1 1
      durio/src/main.rs
  2. 5 5
      kvraft/tests/service_test.rs
  3. 2 2
      tests/persist_tests.rs

+ 1 - 1
durio/src/main.rs

@@ -65,7 +65,7 @@ async fn run_web_server(socket_addr: SocketAddr, kv_server: Arc<KVServer>) {
     let get = warp::get()
         .and(warp::path!("kvstore" / "get" / String))
         .and_then(move |key: String| {
-            let counter = counter.fetch_add(1, Ordering::SeqCst).to_string();
+            let counter = counter.fetch_add(1, Ordering::Relaxed).to_string();
             let get_clerk = get_clerk.clone();
             async move {
                 let value = get_clerk.get(&key).await.unwrap_or_default();

+ 5 - 5
kvraft/tests/service_test.rs

@@ -145,19 +145,19 @@ fn one_partition() -> Result {
     std::thread::spawn(move || {
         logger.attach();
         clerk_minority1.put(KEY, "15");
-        counter1.fetch_or(1, Ordering::SeqCst);
+        counter1.fetch_or(1, Ordering::AcqRel);
     });
     let counter2 = counter.clone();
     let logger = LocalLogger::inherit();
     std::thread::spawn(move || {
         logger.attach();
         clerk_minority2.get(KEY);
-        counter2.fetch_or(2, Ordering::SeqCst);
+        counter2.fetch_or(2, Ordering::AcqRel);
     });
 
     sleep_millis(1000);
 
-    assert_eq!(counter.load(Ordering::SeqCst), 0);
+    assert_eq!(counter.load(Ordering::Acquire), 0);
 
     assert_eq!(clerk_majority.get(KEY), Some("14".to_owned()));
     clerk_majority.put(KEY, "16");
@@ -171,12 +171,12 @@ fn one_partition() -> Result {
     sleep_election_timeouts(1);
     for _ in 0..100 {
         sleep_millis(60);
-        if counter.load(Ordering::SeqCst) == 3 {
+        if counter.load(Ordering::Acquire) == 3 {
             break;
         }
     }
 
-    assert_eq!(counter.load(Ordering::SeqCst), 3);
+    assert_eq!(counter.load(Ordering::Acquire), 3);
     assert_eq!(clerk.get(KEY), Some("15".to_owned()));
 
     Ok(())

+ 2 - 2
tests/persist_tests.rs

@@ -321,7 +321,7 @@ fn internal_churn(unreliable: bool) -> config::Result<()> {
         let handle = std::thread::spawn(move || {
             test_utils::thread_local_logger::set(logger);
             let mut cmds = vec![];
-            while !stop.load(Ordering::SeqCst) {
+            while !stop.load(Ordering::Acquire) {
                 let cmd = thread_rng().gen();
                 let mut index = None;
                 for i in 0..SERVERS {
@@ -390,7 +390,7 @@ fn internal_churn(unreliable: bool) -> config::Result<()> {
         cfg.connect(i);
     }
 
-    stop.store(true, Ordering::SeqCst);
+    stop.store(true, Ordering::Release);
     let mut all_cmds = vec![];
     for handle in handles {
         let mut cmds = handle.join().expect("Client should not fail")?;