-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Back to the classic multicore-magic-dscheck way as cyclic deps are a …
…real thing apparently.
- Loading branch information
Showing
4 changed files
with
51 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,4 @@ | ||
(library | ||
(name multicore_magic_dscheck) | ||
(public_name multicore-magic-dscheck) | ||
(wrapped false) | ||
(root_module Deps) | ||
(libraries multicore-magic dscheck)) | ||
(libraries multicore-magic dscheck)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
module Atomic = Dscheck.TracedAtomic | ||
|
||
val copy_as_padded : 'a -> 'a | ||
val make_padded_array : int -> 'a -> 'a array | ||
val length_of_padded_array : 'a array -> int | ||
val length_of_padded_array_minus_1 : 'a array -> int | ||
val fenceless_get : 'a Atomic.t -> 'a | ||
val fenceless_set : 'a Atomic.t -> 'a -> unit | ||
val fence : int Atomic.t -> unit | ||
|
||
module Transparent_atomic : sig | ||
type !'a t = 'a Atomic.t | ||
|
||
val make : 'a -> 'a t | ||
val make_contended : 'a -> 'a t | ||
val get : 'a t -> 'a | ||
val fenceless_get : 'a t -> 'a | ||
val set : 'a t -> 'a -> unit | ||
val fenceless_set : 'a t -> 'a -> unit | ||
val exchange : 'a t -> 'a -> 'a | ||
val compare_and_set : 'a t -> 'a -> 'a -> bool | ||
val fetch_and_add : int t -> int -> int | ||
val incr : int t -> unit | ||
val decr : int t -> unit | ||
end | ||
|
||
module Atomic_array : sig | ||
type !'a t | ||
|
||
val make : int -> 'a -> 'a t | ||
val of_array : 'a array -> 'a t | ||
val init : int -> (int -> 'a) -> 'a t | ||
val length : 'a t -> int | ||
val unsafe_fenceless_get : 'a t -> int -> 'a | ||
val unsafe_fenceless_set : 'a t -> int -> 'a -> unit | ||
val unsafe_compare_and_set : 'a t -> int -> 'a -> 'a -> bool | ||
end | ||
|
||
val instantaneous_domain_index : unit -> int |