|
|
|
@ -38,22 +38,22 @@ Concurrency Kit (libck, \-lck)
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn ck_pr_fence_strict_load void
|
|
|
|
|
.Sh DESCRIPTION
|
|
|
|
|
This function will enforce the ordering of any memory load
|
|
|
|
|
This function enforces the ordering of any memory load
|
|
|
|
|
and
|
|
|
|
|
.Fn ck_pr_load 3
|
|
|
|
|
operations relative to the invocation of the function. Any
|
|
|
|
|
store operations that were committed on remote processors
|
|
|
|
|
and received by the calling processor before the invocation of
|
|
|
|
|
.Fn ck_pr_fence_load
|
|
|
|
|
will also be made visible only after a call to
|
|
|
|
|
is also be made visible only after a call to
|
|
|
|
|
.Fn ck_pr_fence_load .
|
|
|
|
|
This function will always serve as an implicit compiler barrier.
|
|
|
|
|
This function always serves as an implicit compiler barrier.
|
|
|
|
|
On architectures with CK_MD_TSO or CK_MD_PSO specified (total store ordering
|
|
|
|
|
and partial store ordering respectively), this operation will only serve
|
|
|
|
|
and partial store ordering respectively), this operation only serves
|
|
|
|
|
as a compiler barrier and no fence instructions will be emitted. To
|
|
|
|
|
force the unconditional emission of a load fence, use
|
|
|
|
|
.Fn ck_pr_fence_strict_load .
|
|
|
|
|
Architectures implementing CK_MD_RMO will always emit a load fence.
|
|
|
|
|
Architectures implementing CK_MD_RMO always emit a load fence.
|
|
|
|
|
.Sh EXAMPLE
|
|
|
|
|
.Bd -literal -offset indent
|
|
|
|
|
|
|
|
|
|