Module Kcas.Retry

Retry support.

exception Later

Exception that may be raised to signal that the operation, such as Loc.get_as, Loc.update, or Xt.commit, should be retried, at some point in the future, after the examined shared memory location or locations have changed.

NOTE: It is important to understand that "after" may effectively mean "immediately", because it may be the case that the examined shared memory locations have already changed.

val later : unit -> 'a

later () is equivalent to raise Later.

val unless : bool -> unit

unless condition is equivalent to if not condition then later ().

exception Invalid

Exception that may be raised to signal that the transaction log is no longer valid, e.g. because shared memory locations have been changed outside of the transaction, and the transaction should be retried.

val invalid : unit -> 'a

invalid () is equivalent to raise Invalid.