1
Fork 0

Auto merge of #28149 - jakerr:atomic, r=alexcrichton

Makes the code agree with the comment: 'value answers "am I locked?"'.
This commit is contained in:
bors 2015-09-02 03:13:43 +00:00
commit e758946f96

View file

@ -210,18 +210,18 @@ use std::sync::atomic::{AtomicBool, Ordering};
use std::thread;
fn main() {
let lock = Arc::new(AtomicBool::new(true)); // value answers "am I locked?"
let lock = Arc::new(AtomicBool::new(false)); // value answers "am I locked?"
// ... distribute lock to threads somehow ...
// Try to acquire the lock by setting it to false
while !lock.compare_and_swap(true, false, Ordering::Acquire) { }
// Try to acquire the lock by setting it to true
while lock.compare_and_swap(false, true, Ordering::Acquire) { }
// broke out of the loop, so we successfully acquired the lock!
// ... scary data accesses ...
// ok we're done, release the lock
lock.store(true, Ordering::Release);
lock.store(false, Ordering::Release);
}
```