|
|
|
@ -150,13 +150,13 @@ Concurrency Kit (libck, \-lck)
|
|
|
|
|
.Fn ck_spinlock_fas_unlock "ck_spinlock_fas_t *lock"
|
|
|
|
|
.Pp
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn ck_spinlock_hclh_init "ck_spinlock_clh_t **lock" "ck_spinlock_clh_t *unowned"
|
|
|
|
|
.Fn ck_spinlock_hclh_init "ck_spinlock_hclh_t **lock" "ck_spinlock_hclh_t *unowned"
|
|
|
|
|
.Ft bool
|
|
|
|
|
.Fn ck_spinlock_hclh_locked "ck_spinlock_clh_t **lock"
|
|
|
|
|
.Fn ck_spinlock_hclh_locked "ck_spinlock_hclh_t **lock"
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn ck_spinlock_hclh_lock "ck_spinlock_clh_t **lock" "ck_spinlock_clh_t *node"
|
|
|
|
|
.Fn ck_spinlock_hclh_lock "ck_spinlock_hclh_t **lock" "ck_spinlock_hclh_t *node"
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn ck_spinlock_hclh_unlock "ck_spinlock_clh_t **node"
|
|
|
|
|
.Fn ck_spinlock_hclh_unlock "ck_spinlock_hclh_t **node"
|
|
|
|
|
.Pp
|
|
|
|
|
.Dv ck_spinlock_mcs_t spinlock = CK_SPINLOCK_MCS_INITIALIZER;
|
|
|
|
|
.Ft void
|
|
|
|
@ -200,7 +200,7 @@ provides a summary of the current implementations.
|
|
|
|
|
ck_spinlock_ticket Ticket Centralized None Yes
|
|
|
|
|
.Ed
|
|
|
|
|
.Pp
|
|
|
|
|
* Hierarchical CLH only offers a weak fairness for threads accross cluster
|
|
|
|
|
* Hierarchical CLH only offers weak fairness for threads accross cluster
|
|
|
|
|
nodes.
|
|
|
|
|
.Pp
|
|
|
|
|
If contention is low and there is no hard requirement for starvation-freedom
|
|
|
|
|