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