Remove unnecessary synchronization when cloning shared representation (#404)

This commit is contained in:
Tomasz Miąsko
2020-07-03 03:55:16 +02:00
committed by GitHub
parent 7e158a1f92
commit 3d28557ac0
2 changed files with 2 additions and 2 deletions
+1 -1
View File
@@ -928,7 +928,7 @@ const KIND_VEC: usize = 0b1;
const KIND_MASK: usize = 0b1;
unsafe fn shared_clone(data: &AtomicPtr<()>, ptr: *const u8, len: usize) -> Bytes {
let shared = data.load(Ordering::Acquire);
let shared = data.load(Ordering::Relaxed);
shallow_clone_arc(shared as _, ptr, len)
}
+1 -1
View File
@@ -1495,7 +1495,7 @@ static SHARED_VTABLE: Vtable = Vtable {
};
unsafe fn shared_v_clone(data: &AtomicPtr<()>, ptr: *const u8, len: usize) -> Bytes {
let shared = data.load(Ordering::Acquire) as *mut Shared;
let shared = data.load(Ordering::Relaxed) as *mut Shared;
increment_shared(shared);
let data = AtomicPtr::new(shared as _);