@@ -136,7 +136,9 @@ let[@inline] resume_awaiters = function
136136 | [ awaiter ] -> resume_awaiter awaiter
137137 | awaiters -> List. iter resume_awaiter awaiters
138138
139- type mode = Lock_free | Obstruction_free
139+ module Mode = struct
140+ type t = [ `Lock_free | `Obstruction_free ]
141+ end
140142
141143type 'a state = {
142144 mutable before : 'a ;
@@ -164,7 +166,7 @@ and _ tdt =
164166 This field must be first, see [root_as_atomic] and
165167 [tree_as_ref]. *)
166168 timeout : [ `Set | `Unset ] Timeout .t ;
167- mutable mode : mode ;
169+ mutable mode : Mode .t ;
168170 mutable validate_counter : int ;
169171 mutable post_commit : Action .t ;
170172 }
@@ -231,13 +233,6 @@ let[@inline] is_determined = function
231233 | R After | R Before -> true
232234 end
233235
234- module Mode = struct
235- type t = mode
236-
237- let lock_free = Lock_free
238- let obstruction_free = Obstruction_free
239- end
240-
241236let [@ inline] isnt_int x = not (Obj. is_int (Obj. repr x))
242237
243238let [@ inline] rec release_after_rec which = function
@@ -545,20 +540,18 @@ let dec x = x - 1
545540module Loc = struct
546541 type 'a t = 'a loc
547542
548- let make ?(padded = false ) ?(mode = Mode. obstruction_free ) after =
543+ let make ?(padded = false ) ?(mode = `Obstruction_free ) after =
549544 let state = new_state after
550- and id =
551- if mode == Mode. obstruction_free then Id. nat_id () else Id. neg_id ()
552- in
545+ and id = if mode == `Obstruction_free then Id. nat_id () else Id. neg_id () in
553546 make_loc padded state id
554547
555548 let make_contended ?mode after = make ~padded: true ?mode after
556549
557- let make_array ?(padded = false ) ?(mode = Mode. obstruction_free ) n after =
550+ let make_array ?(padded = false ) ?(mode = `Obstruction_free ) n after =
558551 assert (0 < = n);
559552 let state = new_state after
560553 and id =
561- (if mode == Mode. obstruction_free then Id. nat_ids n else Id. neg_ids n)
554+ (if mode == `Obstruction_free then Id. nat_ids n else Id. neg_ids n)
562555 - (n - 1 )
563556 in
564557 Array. init n @@ fun i -> make_loc padded state (id + i)
@@ -584,7 +577,7 @@ module Loc = struct
584577 get_as (Timeout. alloc_opt timeoutf) f loc (atomic_get (as_atomic loc))
585578
586579 let [@ inline] get_mode loc =
587- if loc.id < 0 then Mode. lock_free else Mode. obstruction_free
580+ if loc.id < 0 then `Lock_free else `Obstruction_free
588581
589582 let compare_and_set ?(backoff = Backoff. default) loc before after =
590583 let state = new_state after in
@@ -660,7 +653,7 @@ module Xt = struct
660653
661654 let [@ inline] is_obstruction_free (Xt xt_r : _ t ) loc =
662655 (* Fenceless is safe as we are accessing a private location. *)
663- xt_r.mode == Mode. obstruction_free && 0 < = loc.id
656+ xt_r.mode == `Obstruction_free && 0 < = loc.id
664657
665658 let [@ inline] update_new loc f xt lt gt =
666659 (* Fenceless is safe inside transactions as each log update has a fence. *)
@@ -895,9 +888,9 @@ module Xt = struct
895888 if a_cmp_followed_by_a_cas < status then begin
896889 if finish xt root (verify xt root) then success xt result
897890 else begin
898- (* We switch to [Mode.lock_free ] as there was
891+ (* We switch to [`Lock_free ] as there was
899892 interference. *)
900- commit_once_alloc backoff Mode. lock_free xt tx
893+ commit_once_alloc backoff `Lock_free xt tx
901894 end
902895 end
903896 else if
@@ -965,7 +958,7 @@ module Xt = struct
965958 commit backoff xt tx
966959
967960 let [@ inline] commit ?timeoutf ?(backoff = Backoff. default)
968- ?(mode = Mode. obstruction_free ) { tx } =
961+ ?(mode = `Obstruction_free ) { tx } =
969962 let timeout = Timeout. alloc_opt timeoutf
970963 and rot = U Leaf
971964 and validate_counter = initial_validate_period
0 commit comments