Skip to content

Commit dc50a8d

Browse files
committed
Add padding to avoid false sharing
This should stabilize and improve performance.
1 parent 521d013 commit dc50a8d

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src_lockfree/ws_deque.ml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,14 @@ module M : S = struct
9797
}
9898

9999
let create () =
100-
{
101-
top = Atomic.make 1;
102-
bottom = Atomic.make 1;
103-
tab = Atomic.make (CArray.create min_size (Obj.magic ()));
104-
next_shrink = 0;
105-
}
100+
let top = Atomic.make 1 |> Multicore_magic.copy_as_padded in
101+
let bottom = Atomic.make 1 |> Multicore_magic.copy_as_padded in
102+
let tab =
103+
Atomic.make (CArray.create min_size (Obj.magic ()))
104+
|> Multicore_magic.copy_as_padded
105+
in
106+
let next_shrink = 0 in
107+
{ top; bottom; tab; next_shrink } |> Multicore_magic.copy_as_padded
106108

107109
let set_next_shrink q =
108110
let sz = CArray.size (Atomic.get q.tab) in

0 commit comments

Comments
 (0)