summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorMica White <botahamec@outlook.com>2024-03-08 11:47:18 -0500
committerMica White <botahamec@outlook.com>2024-03-08 11:47:18 -0500
commite8cb12855d975a49f72210bb8c738092d6b82171 (patch)
tree187821a4bb95c5e9c82092d916df79f78cd26b55 /README.md
parent6b4951ade670acbe3cb34b2002fbcd4b4e6a7300 (diff)
Fix readme examples
Diffstat (limited to 'README.md')
-rw-r--r--README.md12
1 files changed, 6 insertions, 6 deletions
diff --git a/README.md b/README.md
index aa73f09..79d1945 100644
--- a/README.md
+++ b/README.md
@@ -27,7 +27,7 @@ for _ in 0..N {
let key = ThreadKey::lock().unwrap();
// unlocking a mutex requires a ThreadKey
- let mut data = data.lock(key);
+ let mut data = data.lock(&mut key);
*data += 1;
// the key is unlocked at the end of the scope
@@ -35,7 +35,7 @@ for _ in 0..N {
}
let key = ThreadKey::lock().unwrap();
-let data = data.lock(key);
+let data = data.lock(&mut key);
println!("{}", *data);
```
@@ -44,14 +44,14 @@ Unlocking a mutex requires a mutable reference to `ThreadKey`. Each thread will
To lock multiple mutexes at a time, create a `LockGuard`.
```rust
-static DATA_1: Mutex<i32> = Mutex::new(0);
-static DATA_2: Mutex<String> = Mutex::new(String::new());
+static DATA_1: SpinLock<i32> = Mutex::new(0);
+static DATA_2: SpinLock<String> = Mutex::new(String::new());
for _ in 0..N {
thread::spawn(move || {
let key = ThreadKey::lock().unwrap();
let data = (&DATA_1, &DATA_2);
- let mut guard = LockGuard::lock(&data, key);
+ let mut guard = LockGuard::lock(&data, &mut key);
*guard.1 = (100 - *guard.0).to_string();
*guard.0 += 1;
});
@@ -59,7 +59,7 @@ for _ in 0..N {
let key = ThreadKey::lock().unwrap();
let data = (&DATA_1, &DATA_2);
-let data = LockGuard::lock(&data, key);
+let data = LockGuard::lock(&data, &mut key);
println!("{}", *data.0);
println!("{}", *data.1);
```