parent
61120e05e1
commit
9be176959e
@ -0,0 +1,58 @@
|
|||||||
|
.\"
|
||||||
|
.\" Copyright 2013 Samy Al Bahra.
|
||||||
|
.\" All rights reserved.
|
||||||
|
.\"
|
||||||
|
.\" Redistribution and use in source and binary forms, with or without
|
||||||
|
.\" modification, are permitted provided that the following conditions
|
||||||
|
.\" are met:
|
||||||
|
.\" 1. Redistributions of source code must retain the above copyright
|
||||||
|
.\" notice, this list of conditions and the following disclaimer.
|
||||||
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
.\" notice, this list of conditions and the following disclaimer in the
|
||||||
|
.\" documentation and/or other materials provided with the distribution.
|
||||||
|
.\"
|
||||||
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||||
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
.\" SUCH DAMAGE.
|
||||||
|
.\"
|
||||||
|
.\"
|
||||||
|
.Dd October 18, 2013
|
||||||
|
.Dt CK_ARRAY_COMMIT 3
|
||||||
|
.Sh NAME
|
||||||
|
.Nm ck_array_commit
|
||||||
|
.Nd linearization point for mutations before commit call
|
||||||
|
.Sh LIBRARY
|
||||||
|
Concurrency Kit (libck, \-lck)
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In ck_array.h
|
||||||
|
.Ft bool
|
||||||
|
.Fn ck_array_commit "ck_array_t *array"
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
The
|
||||||
|
.Fn ck_array_commit 3
|
||||||
|
function will commit any pending put or remove operations associated
|
||||||
|
with the array. The function may end up requested the safe reclamation
|
||||||
|
of memory actively being iterated upon by other threads.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This function returns true if the commit operation succeeded. It will
|
||||||
|
return false otherwise, and pending operations will not be applied.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr ck_array_init 3 ,
|
||||||
|
.Xr ck_array_put 3 ,
|
||||||
|
.Xr ck_array_put_unique 3 ,
|
||||||
|
.Xr ck_array_remove 3 ,
|
||||||
|
.Xr ck_array_deinit 3
|
||||||
|
.Xr ck_array_length 3 ,
|
||||||
|
.Xr ck_array_buffer 3 ,
|
||||||
|
.Xr ck_array_initialized 3 ,
|
||||||
|
.Xr CK_ARRAY_FOREACH 3
|
||||||
|
.Pp
|
||||||
|
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,69 @@
|
|||||||
|
.\"
|
||||||
|
.\" Copyright 2012-2013 Samy Al Bahra.
|
||||||
|
.\" All rights reserved.
|
||||||
|
.\"
|
||||||
|
.\" Redistribution and use in source and binary forms, with or without
|
||||||
|
.\" modification, are permitted provided that the following conditions
|
||||||
|
.\" are met:
|
||||||
|
.\" 1. Redistributions of source code must retain the above copyright
|
||||||
|
.\" notice, this list of conditions and the following disclaimer.
|
||||||
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
.\" notice, this list of conditions and the following disclaimer in the
|
||||||
|
.\" documentation and/or other materials provided with the distribution.
|
||||||
|
.\"
|
||||||
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||||
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
.\" SUCH DAMAGE.
|
||||||
|
.\"
|
||||||
|
.\"
|
||||||
|
.Dd October 18, 2013
|
||||||
|
.Dt CK_ARRAY_INIT 3
|
||||||
|
.Sh NAME
|
||||||
|
.Nm ck_array_init
|
||||||
|
.Nd initialize a pointer array
|
||||||
|
.Sh LIBRARY
|
||||||
|
Concurrency Kit (libck, \-lck)
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In ck_array.h
|
||||||
|
.Ft bool
|
||||||
|
.Fn ck_array_init "ck_array_t *array" "unsigned int mode" "struct ck_malloc *allocator" "unsigned int initial_length"
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
The
|
||||||
|
.Fn ck_array_init 3
|
||||||
|
function initializes the array pointed to by the argument
|
||||||
|
.Fa array .
|
||||||
|
The mode value must be
|
||||||
|
.Dv CK_ARRAY_MODE_SPMC .
|
||||||
|
The
|
||||||
|
.Fa allocator
|
||||||
|
argument must point to a ck_malloc data structure with valid non-NULL function pointers
|
||||||
|
initialized for malloc, free and realloc. The
|
||||||
|
.Fa initial_length
|
||||||
|
specifies the initial length of the array. The value of
|
||||||
|
.Fa initial_length
|
||||||
|
must be greater than or equal to 2. An array allows for one concurrent put or remove operations
|
||||||
|
in the presence of any number of concurrent CK_ARRAY_FOREACH operations.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This function returns true if the array was successfully created. It returns
|
||||||
|
false if the creation failed. Failure may occur due to internal memory allocation
|
||||||
|
failures or invalid arguments.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr ck_array_commit 3 ,
|
||||||
|
.Xr ck_array_put 3 ,
|
||||||
|
.Xr ck_array_put_unique 3 ,
|
||||||
|
.Xr ck_array_remove 3 ,
|
||||||
|
.Xr ck_array_deinit 3
|
||||||
|
.Xr ck_array_length 3 ,
|
||||||
|
.Xr ck_array_buffer 3 ,
|
||||||
|
.Xr ck_array_initialized 3 ,
|
||||||
|
.Xr CK_ARRAY_FOREACH 3
|
||||||
|
.Pp
|
||||||
|
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,65 @@
|
|||||||
|
.\"
|
||||||
|
.\" Copyright 2013 Samy Al Bahra.
|
||||||
|
.\" All rights reserved.
|
||||||
|
.\"
|
||||||
|
.\" Redistribution and use in source and binary forms, with or without
|
||||||
|
.\" modification, are permitted provided that the following conditions
|
||||||
|
.\" are met:
|
||||||
|
.\" 1. Redistributions of source code must retain the above copyright
|
||||||
|
.\" notice, this list of conditions and the following disclaimer.
|
||||||
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
.\" notice, this list of conditions and the following disclaimer in the
|
||||||
|
.\" documentation and/or other materials provided with the distribution.
|
||||||
|
.\"
|
||||||
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||||
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
.\" SUCH DAMAGE.
|
||||||
|
.\"
|
||||||
|
.\"
|
||||||
|
.Dd October 18, 2013
|
||||||
|
.Dt CK_ARRAY_PUT 3
|
||||||
|
.Sh NAME
|
||||||
|
.Nm ck_array_put
|
||||||
|
.Nd attempt immediate or deferred insertion of a pointer into array
|
||||||
|
.Sh LIBRARY
|
||||||
|
Concurrency Kit (libck, \-lck)
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In ck_array.h
|
||||||
|
.Ft bool
|
||||||
|
.Fn ck_array_put "ck_array_t *array" "void *pointer"
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
The
|
||||||
|
.Fn ck_array_put 3
|
||||||
|
function will attempt to insert the value of
|
||||||
|
.Fa pointer
|
||||||
|
into the array pointed to by
|
||||||
|
.Fa array .
|
||||||
|
This function may incur additional memory allocations
|
||||||
|
if not enough memory has been allocated in the array
|
||||||
|
for a new entry. The operation is also free to apply
|
||||||
|
the operation immediately if there is an opportunity
|
||||||
|
for elimination with a pending (uncommitted) remove
|
||||||
|
operation.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This function returns true if the put operation succeeded. It will
|
||||||
|
return false otherwise due to internal allocation failures.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr ck_array_init 3 ,
|
||||||
|
.Xr ck_array_commit 3 ,
|
||||||
|
.Xr ck_array_put_unique 3 ,
|
||||||
|
.Xr ck_array_remove 3 ,
|
||||||
|
.Xr ck_array_deinit 3
|
||||||
|
.Xr ck_array_length 3 ,
|
||||||
|
.Xr ck_array_buffer 3 ,
|
||||||
|
.Xr ck_array_initialized 3 ,
|
||||||
|
.Xr CK_ARRAY_FOREACH 3
|
||||||
|
.Pp
|
||||||
|
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,67 @@
|
|||||||
|
.\"
|
||||||
|
.\" Copyright 2013 Samy Al Bahra.
|
||||||
|
.\" All rights reserved.
|
||||||
|
.\"
|
||||||
|
.\" Redistribution and use in source and binary forms, with or without
|
||||||
|
.\" modification, are permitted provided that the following conditions
|
||||||
|
.\" are met:
|
||||||
|
.\" 1. Redistributions of source code must retain the above copyright
|
||||||
|
.\" notice, this list of conditions and the following disclaimer.
|
||||||
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
.\" notice, this list of conditions and the following disclaimer in the
|
||||||
|
.\" documentation and/or other materials provided with the distribution.
|
||||||
|
.\"
|
||||||
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||||
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
.\" SUCH DAMAGE.
|
||||||
|
.\"
|
||||||
|
.\"
|
||||||
|
.Dd October 18, 2013
|
||||||
|
.Dt CK_ARRAY_PUT 3
|
||||||
|
.Sh NAME
|
||||||
|
.Nm ck_array_put_unique
|
||||||
|
.Nd attempt immediate or deferred insertion of a pointer into array
|
||||||
|
.Sh LIBRARY
|
||||||
|
Concurrency Kit (libck, \-lck)
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In ck_array.h
|
||||||
|
.Ft bool
|
||||||
|
.Fn ck_array_put_unique "ck_array_t *array" "void *pointer"
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
The
|
||||||
|
.Fn ck_array_put_unique 3
|
||||||
|
function will attempt to insert the value of
|
||||||
|
.Fa pointer
|
||||||
|
into the array pointed to by
|
||||||
|
.Fa array .
|
||||||
|
This function may incur additional memory allocations
|
||||||
|
if not enough memory has been allocated in the array
|
||||||
|
for a new entry. The operation is also free to apply
|
||||||
|
the operation immediately if there is an opportunity
|
||||||
|
for elimination with a pending (uncommitted) remove
|
||||||
|
operation. The function will not make any modifications
|
||||||
|
if the pointer already exists in the array.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This function returns 1 if the pointer already exists in the array.
|
||||||
|
It returns 0 if the put operation succeeded. It returns -1 on
|
||||||
|
error due to internal memory allocation failures.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr ck_array_init 3 ,
|
||||||
|
.Xr ck_array_commit 3 ,
|
||||||
|
.Xr ck_array_put 3 ,
|
||||||
|
.Xr ck_array_remove 3 ,
|
||||||
|
.Xr ck_array_deinit 3
|
||||||
|
.Xr ck_array_length 3 ,
|
||||||
|
.Xr ck_array_buffer 3 ,
|
||||||
|
.Xr ck_array_initialized 3 ,
|
||||||
|
.Xr CK_ARRAY_FOREACH 3
|
||||||
|
.Pp
|
||||||
|
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,64 @@
|
|||||||
|
.\"
|
||||||
|
.\" Copyright 2013 Samy Al Bahra.
|
||||||
|
.\" All rights reserved.
|
||||||
|
.\"
|
||||||
|
.\" Redistribution and use in source and binary forms, with or without
|
||||||
|
.\" modification, are permitted provided that the following conditions
|
||||||
|
.\" are met:
|
||||||
|
.\" 1. Redistributions of source code must retain the above copyright
|
||||||
|
.\" notice, this list of conditions and the following disclaimer.
|
||||||
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
.\" notice, this list of conditions and the following disclaimer in the
|
||||||
|
.\" documentation and/or other materials provided with the distribution.
|
||||||
|
.\"
|
||||||
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||||
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
.\" SUCH DAMAGE.
|
||||||
|
.\"
|
||||||
|
.\"
|
||||||
|
.Dd October 18, 2013
|
||||||
|
.Dt CK_ARRAY_REMOVE 3
|
||||||
|
.Sh NAME
|
||||||
|
.Nm ck_array_remove
|
||||||
|
.Nd attempt immediate or deferred insertion of a pointer into array
|
||||||
|
.Sh LIBRARY
|
||||||
|
Concurrency Kit (libck, \-lck)
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In ck_array.h
|
||||||
|
.Ft bool
|
||||||
|
.Fn ck_array_remove "ck_array_t *array" "void *pointer"
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
The
|
||||||
|
.Fn ck_array_remove 3
|
||||||
|
function will attempt to remove the value of
|
||||||
|
.Fa pointer
|
||||||
|
into the array pointed to by
|
||||||
|
.Fa array . The operation is also free to apply
|
||||||
|
the operation immediately if there is an opportunity
|
||||||
|
for elimination with a pending (uncommitted) put
|
||||||
|
operation. If no elimination was possible, the function
|
||||||
|
may require to allocate more memory.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
This function returns true if the remove operation succeeded. It will
|
||||||
|
return false otherwise due to internal allocation failures or because
|
||||||
|
the value did not exist.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr ck_array_init 3 ,
|
||||||
|
.Xr ck_array_commit 3 ,
|
||||||
|
.Xr ck_array_remove 3 ,
|
||||||
|
.Xr ck_array_put_unique 3 ,
|
||||||
|
.Xr ck_array_deinit 3
|
||||||
|
.Xr ck_array_length 3 ,
|
||||||
|
.Xr ck_array_buffer 3 ,
|
||||||
|
.Xr ck_array_initialized 3 ,
|
||||||
|
.Xr CK_ARRAY_FOREACH 3
|
||||||
|
.Pp
|
||||||
|
Additional information available at http://concurrencykit.org/
|
Loading…
Reference in new issue