mwchase icon

LC:NN upload 6: interior mutability

mwchase | PRO | 04/09/17 06:00:08 PM UTC | 0 ⭐ | 817 👁️ | Never ⏰ | []
Diff |

1.15 KB

|

None

|

0 👍

/

0 👎

--- a/rust/q_sequence/src/main.rs
+++ b/rust/q_sequence/src/main.rs
@@ -11,7 +11,7 @@
     }
 }
 
-fn q(mapping: &mut Arc<RwLock<HashMap<i32, Arc<RwLock<i32>>>>>, key: i32) -> i32 {
+fn q(mapping: Arc<RwLock<HashMap<i32, Arc<RwLock<i32>>>>>, key: i32) -> i32 {
     println!("Running for {:?}", key);
     {
         match mapping.read().unwrap().get(&key) {
@@ -33,9 +33,9 @@
             println!("Inserted for {:?}", key);
         }
         {
-            let mut _mapping = mapping.clone();
+            let _mapping = mapping.clone();
             thread::spawn(move || {
-                q(&mut _mapping, key - 1);
+                q(_mapping, key - 1);
             });
         }
         {
@@ -53,7 +53,7 @@
     let mut mapping = HashMap::new();
     mapping.insert(1, Arc::new(RwLock::new(1)));
     mapping.insert(2, Arc::new(RwLock::new(1)));
-    let mut mapping = Arc::new(RwLock::new(mapping));
-    println!("{:?}", q(&mut mapping, 10));
-    println!("{:?}", q(&mut mapping, 10));
+    let mapping = Arc::new(RwLock::new(mapping));
+    println!("{:?}", q(mapping.clone(), 10));
+    println!("{:?}", q(mapping.clone(), 10));
 }

Comments