Merging upstream version 0.7.1 (Closes: #991419).
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
05c588e9d7
commit
9e09e0ef69
99 changed files with 6727 additions and 943 deletions
|
@ -47,10 +47,9 @@ if deemed safe. This function is meant to be used in cases epoch
|
|||
reclamation cost must be amortized over time in a manner that does
|
||||
not affect caller progress.
|
||||
.Sh RETURN VALUES
|
||||
This function will return true if at least one function was dispatched.
|
||||
This function will return false if it has determined not all threads have
|
||||
observed the latest generation of epoch-protected objects. Neither value
|
||||
indicates an error.
|
||||
This functions returns false if the following conditions are met:
|
||||
no memory was reclaimed, the records are not in a grace period and no forward
|
||||
progress was made.
|
||||
.Sh ERRORS
|
||||
Behavior is undefined if the object pointed to by
|
||||
.Fa record
|
||||
|
|
|
@ -34,7 +34,7 @@ Concurrency Kit (libck, \-lck)
|
|||
.Sh SYNOPSIS
|
||||
.In ck_epoch.h
|
||||
.Ft void
|
||||
.Fn ck_epoch_register "ck_epoch_t *epoch" "ck_epoch_record_t *record"
|
||||
.Fn ck_epoch_register "ck_epoch_t *epoch" "ck_epoch_record_t *record" "void *cl"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_epoch_register 3
|
||||
|
@ -49,7 +49,11 @@ object pointed to by the
|
|||
argument will have lifetime managed by the underlying epoch sub-system.
|
||||
The record object must not be destroyed after it is associated with a
|
||||
.Fn ck_epoch_register 3
|
||||
call.
|
||||
call. An optional context pointer
|
||||
.Fa cl
|
||||
may be passed that is retrievable with the
|
||||
.Fn ck_epoch_record_ct 3
|
||||
function.
|
||||
.Sh RETURN VALUES
|
||||
This function has no return value.
|
||||
.Sh SEE ALSO
|
||||
|
|
|
@ -40,6 +40,8 @@ The
|
|||
.Fn ck_epoch_synchronize 3
|
||||
function will block the caller until a grace period has been
|
||||
detected, according to the semantics of epoch reclamation.
|
||||
It is not safe to call this function on a record that is
|
||||
in an active section.
|
||||
Any objects requiring safe memory reclamation which are logically
|
||||
deleted are safe for physical deletion following a call to
|
||||
.Fn ck_epoch_synchronize 3 .
|
||||
|
|
|
@ -29,22 +29,31 @@
|
|||
.Sh NAME
|
||||
.Nm ck_pr_dec_ptr ,
|
||||
.Nm ck_pr_dec_ptr_zero ,
|
||||
.Nm ck_pr_dec_ptr_is_zero ,
|
||||
.Nm ck_pr_dec_double ,
|
||||
.Nm ck_pr_dec_double_zero ,
|
||||
.Nm ck_pr_dec_double_is_zero ,
|
||||
.Nm ck_pr_dec_char ,
|
||||
.Nm ck_pr_dec_char_zero ,
|
||||
.Nm ck_pr_dec_char_is_zero ,
|
||||
.Nm ck_pr_dec_uint ,
|
||||
.Nm ck_pr_dec_uint_zero ,
|
||||
.Nm ck_pr_dec_char_is_zero ,
|
||||
.Nm ck_pr_dec_int ,
|
||||
.Nm ck_pr_dec_int_zero ,
|
||||
.Nm ck_pr_dec_int_is_zero ,
|
||||
.Nm ck_pr_dec_64 ,
|
||||
.Nm ck_pr_dec_64_zero ,
|
||||
.Nm ck_pr_dec_64_is_zero ,
|
||||
.Nm ck_pr_dec_32 ,
|
||||
.Nm ck_pr_dec_32_zero ,
|
||||
.Nm ck_pr_dec_32_is_zero ,
|
||||
.Nm ck_pr_dec_16 ,
|
||||
.Nm ck_pr_dec_16_zero ,
|
||||
.Nm ck_pr_dec_32_is_zero ,
|
||||
.Nm ck_pr_dec_8 ,
|
||||
.Nm ck_pr_dec_8_zero
|
||||
.Nm ck_pr_dec_8_zero ,
|
||||
.Nm ck_pr_dec_8_is_zero
|
||||
.Nd atomic decrement operations
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
|
@ -54,38 +63,56 @@ Concurrency Kit (libck, \-lck)
|
|||
.Fn ck_pr_dec_ptr "void *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_dec_ptr_zero "void *target" "bool *z"
|
||||
.Ft bool
|
||||
.Fn ck_pr_dec_ptr_is_zero "void *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_dec_double "double *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_dec_double_zero "double *target" "bool *z"
|
||||
.Ft bool
|
||||
.Fn ck_pr_dec_double_is_zero "double *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_dec_char "char *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_dec_char_zero "char *target" "bool *z"
|
||||
.Ft bool
|
||||
.Fn ck_pr_dec_char_is_zero "char *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_dec_uint "unsigned int *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_dec_uint_zero "unsigned int *target" "bool *z"
|
||||
.Ft bool
|
||||
.Fn ck_pr_dec_uint_is_zero "unsigned int *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_dec_int "int *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_dec_int_zero "int *target" "bool *z"
|
||||
.Ft bool
|
||||
.Fn ck_pr_dec_int_is_zero "int *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_dec_64 "uint64_t *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_dec_64_zero "uint64_t *target" "bool *z"
|
||||
.Ft bool
|
||||
.Fn ck_pr_dec_64_is_zero "uint64_t *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_dec_32 "uint32_t *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_dec_32_zero "uint32_t *target" "bool *z"
|
||||
.Ft bool
|
||||
.Fn ck_pr_dec_32_is_zero "uint32_t *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_dec_16 "uint16_t *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_dec_16_zero "uint16_t *target" "bool *z"
|
||||
.Ft bool
|
||||
.Fn ck_pr_dec_16_is_zero "uint16_t *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_dec_8 "uint8_t *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_dec_8_zero "uint8_t *target" "bool *z"
|
||||
.Ft bool
|
||||
.Fn ck_pr_dec_8_is_zero "uint8_t *target"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_pr_dec 3
|
||||
|
@ -99,6 +126,8 @@ to true if the result
|
|||
of the decrement operation was 0. They set the value pointed to by
|
||||
.Fa z
|
||||
to false otherwise.
|
||||
The ck_pr_dec_is_zero family of function return true if the result
|
||||
of the decrement operation was 0 and false otherwise.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_pr_fence_load 3 ,
|
||||
.Xr ck_pr_fence_load_depends 3 ,
|
||||
|
|
|
@ -29,22 +29,31 @@
|
|||
.Sh NAME
|
||||
.Nm ck_pr_inc_ptr ,
|
||||
.Nm ck_pr_inc_ptr_zero ,
|
||||
.Nm ck_pr_inc_ptr_is_zero ,
|
||||
.Nm ck_pr_inc_double ,
|
||||
.Nm ck_pr_inc_double_zero ,
|
||||
.Nm ck_pr_inc_double_is_zero ,
|
||||
.Nm ck_pr_inc_char ,
|
||||
.Nm ck_pr_inc_char_zero ,
|
||||
.Nm ck_pr_inc_char_is_zero ,
|
||||
.Nm ck_pr_inc_uint ,
|
||||
.Nm ck_pr_inc_uint_zero ,
|
||||
.Nm ck_pr_inc_uint_is_zero ,
|
||||
.Nm ck_pr_inc_int ,
|
||||
.Nm ck_pr_inc_int_zero ,
|
||||
.Nm ck_pr_inc_int_is_zero ,
|
||||
.Nm ck_pr_inc_64 ,
|
||||
.Nm ck_pr_inc_64_zero ,
|
||||
.Nm ck_pr_inc_64_is_zero ,
|
||||
.Nm ck_pr_inc_32 ,
|
||||
.Nm ck_pr_inc_32_zero ,
|
||||
.Nm ck_pr_inc_32_is_zero ,
|
||||
.Nm ck_pr_inc_16 ,
|
||||
.Nm ck_pr_inc_16_zero ,
|
||||
.Nm ck_pr_inc_16_is_zero ,
|
||||
.Nm ck_pr_inc_8 ,
|
||||
.Nm ck_pr_inc_8_zero
|
||||
.Nm ck_pr_inc_8_zero ,
|
||||
.Nm ck_pr_inc_8_is_zero
|
||||
.Nd atomic increment operations
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
|
@ -54,38 +63,56 @@ Concurrency Kit (libck, \-lck)
|
|||
.Fn ck_pr_inc_ptr "void *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_inc_ptr_zero "void *target" "bool *z"
|
||||
.Ft bool
|
||||
.Fn ck_pr_inc_ptr_is_zero "void *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_inc_double "double *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_inc_double_zero "double *target" "bool *z"
|
||||
.Ft bool
|
||||
.Fn ck_pr_inc_double_is_zero "double *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_inc_char "char *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_inc_char_zero "char *target" "bool *z"
|
||||
.Ft bool
|
||||
.Fn ck_pr_inc_char_is_zero "char *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_inc_uint "unsigned int *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_inc_uint_zero "unsigned int *target" "bool *z"
|
||||
.Ft bool
|
||||
.Fn ck_pr_inc_uint_is_zero "unsigned int *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_inc_int "int *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_inc_int_zero "int *target" "bool *z"
|
||||
.Ft bool
|
||||
.Fn ck_pr_inc_int_is_zero "int *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_inc_64 "uint64_t *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_inc_64_zero "uint64_t *target" "bool *z"
|
||||
.Ft bool
|
||||
.Fn ck_pr_inc_64_is_zero "uint64_t *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_inc_32 "uint32_t *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_inc_32_zero "uint32_t *target" "bool *z"
|
||||
.Ft bool
|
||||
.Fn ck_pr_inc_32_is_zero "uint32_t *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_inc_16 "uint16_t *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_inc_16_zero "uint16_t *target" "bool *z"
|
||||
.Ft bool
|
||||
.Fn ck_pr_inc_16_is_zero "uint16_t *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_inc_8 "uint8_t *target"
|
||||
.Ft void
|
||||
.Fn ck_pr_inc_8_zero "uint8_t *target" "bool *z"
|
||||
.Ft bool
|
||||
.Fn ck_pr_inc_8_is_zero "uint8_t *target"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_pr_inc 3
|
||||
|
@ -99,6 +126,8 @@ to true if the result of the increment operation was 0. The functions set
|
|||
the value pointed to by
|
||||
.Fa z
|
||||
false otherwise.
|
||||
The ck_pr_inc_is_zero family of function return true if the result
|
||||
of the decrement operation was 0 and false otherwise.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_pr_fence_load 3 ,
|
||||
.Xr ck_pr_fence_load_depends 3 ,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue