Skip to content

Commit 2b516ad

Browse files
committed
Note on allocation order optimizations
1 parent 7803b0d commit 2b516ad

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/kcas/kcas.mli

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,14 +194,22 @@ module Loc : sig
194194
If explicitly specified as [`Lock_free], the location will always be
195195
accessed using the lock-free operating mode. This may improve performance
196196
in rare cases where a location is updated frequently and obstruction-free
197-
read-only accesses would almost certainly suffer from interference. *)
197+
read-only accesses would almost certainly suffer from interference.
198+
199+
Locations are allocated such that accessing the locations inside a
200+
transaction in allocation order from oldest to youngest is as fast as
201+
possible. *)
198202

199203
val make_contended : ?mode:Mode.t -> 'a -> 'a t
200204
(** [make_contended initial] is equivalent to [make ~padded:true initial]. *)
201205

202206
val make_array : ?padded:bool -> ?mode:Mode.t -> int -> 'a -> 'a t array
203207
(** [make_array n initial] creates an array of [n] new shared memory locations
204-
with the [initial] value. *)
208+
with the [initial] value.
209+
210+
The locations are allocated in such an order that accessing the locations
211+
in the array inside a transaction in order from the highest index to the
212+
lowest index is as fast as possible. *)
205213

206214
val get_mode : 'a t -> Mode.t
207215
(** [get_mode r] returns the operating mode of the shared memory location

0 commit comments

Comments
 (0)