Skip to content

Commit 690d85e

Browse files
authored
Merge pull request #25 from brkydnc/master
Require `FnOnce` instead of `Fn` in `replace_with`
2 parents 719625d + 7966964 commit 690d85e

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/sync/atomics.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,13 +100,20 @@ impl<T: Sized> AtomicBox<T> {
100100
/// given closure to the current value
101101
pub fn replace_with<F>(&self, f: F)
102102
where
103-
F: Fn(Arc<T>) -> T,
103+
F: FnOnce(Arc<T>) -> T,
104104
{
105105
let val = self.take();
106106
let new_val = f(val);
107107
let ptr = Arc::into_raw(Arc::new(new_val)) as *mut T;
108108
self.release(ptr);
109109
}
110+
111+
///
112+
/// Atomically replace the inner value with the given one.
113+
pub fn replace(&self, new_val: T) {
114+
let ptr = Arc::into_raw(Arc::new(new_val)) as *mut T;
115+
self.release(ptr);
116+
}
110117
}
111118

112119
impl<T: Sized + PartialEq> PartialEq for AtomicBox<T> {

0 commit comments

Comments
 (0)