parent
1a84d49c3c
commit
ea16b65225
@ -0,0 +1,86 @@
|
||||
.\"
|
||||
.\" Copyright 2014 Samy Al Bahra.
|
||||
.\" Copyright 2014 Backtrace I/O, Inc.
|
||||
.\" 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 September 1, 2014
|
||||
.Dt CK_RHS_APPLY 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_apply
|
||||
.Nd apply a function to hash set value
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Ft void *
|
||||
.Fn ck_rhs_apply_fn_t "void *key" "void *closure"
|
||||
.Ft bool
|
||||
.Fn ck_rhs_apply "ck_rhs_t *hs" "unsigned long hash" "const void *key" "ck_rhs_apply_fn_t *function" "void *argument"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_apply 3
|
||||
function will lookup the hash set slot associated with
|
||||
.Fa key
|
||||
and pass it to function pointed to by
|
||||
.Fa function
|
||||
for further action. This callback may remove or replace
|
||||
the value by respectively returning NULL or a pointer to
|
||||
another object with an identical key. The first argument
|
||||
passed to
|
||||
.Fa function
|
||||
is a pointer to the object found in the hash set and
|
||||
the second argument is the
|
||||
.Fa argument
|
||||
pointer passed to
|
||||
.Fn ck_rhs_apply 3 .
|
||||
If the pointer returned by
|
||||
.Fa function
|
||||
is equivalent to the first argument then no modification
|
||||
is made to the hash set.
|
||||
.Sh RETURN VALUES
|
||||
Upon successful completion,
|
||||
.Fn ck_rhs_apply 3
|
||||
returns true and otherwise returns false on failure.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_init 3 ,
|
||||
.Xr ck_rhs_move 3 ,
|
||||
.Xr ck_rhs_destroy 3 ,
|
||||
.Xr ck_rhs_fas 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_iterator_init 3 ,
|
||||
.Xr ck_rhs_next 3 ,
|
||||
.Xr ck_rhs_get 3 ,
|
||||
.Xr ck_rhs_put 3 ,
|
||||
.Xr ck_rhs_put_unique 3 ,
|
||||
.Xr ck_rhs_remove 3 ,
|
||||
.Xr ck_rhs_grow 3 ,
|
||||
.Xr ck_rhs_rebuild 3 ,
|
||||
.Xr ck_rhs_gc 3 ,
|
||||
.Xr ck_rhs_count 3 ,
|
||||
.Xr ck_rhs_reset 3 ,
|
||||
.Xr ck_rhs_reset_size 3 ,
|
||||
.Xr ck_rhs_stat 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,70 @@
|
||||
.\"
|
||||
.\" 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 September 17, 2012
|
||||
.Dt CK_RHS_COUNT 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_count
|
||||
.Nd returns number of entries in hash set
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Ft unsigned long
|
||||
.Fn ck_rhs_count "ck_rhs_t *hs"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_count 3
|
||||
function returns the number of keys currently
|
||||
stored in
|
||||
.Fa hs .
|
||||
.Sh ERRORS
|
||||
Behavior is undefined if
|
||||
.Fa hs
|
||||
is uninitialized. Behavior is
|
||||
undefined if this function is called by a non-writer
|
||||
thread.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_init 3 ,
|
||||
.Xr ck_rhs_move 3 ,
|
||||
.Xr ck_rhs_destroy 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_iterator_init 3 ,
|
||||
.Xr ck_rhs_next 3 ,
|
||||
.Xr ck_rhs_get 3 ,
|
||||
.Xr ck_rhs_put 3 ,
|
||||
.Xr ck_rhs_put_unique 3 ,
|
||||
.Xr ck_rhs_set 3 ,
|
||||
.Xr ck_rhs_fas 3 ,
|
||||
.Xr ck_rhs_remove 3 ,
|
||||
.Xr ck_rhs_grow 3 ,
|
||||
.Xr ck_rhs_rebuild 3 ,
|
||||
.Xr ck_rhs_gc 3 ,
|
||||
.Xr ck_rhs_reset 3 ,
|
||||
.Xr ck_rhs_reset_size 3 ,
|
||||
.Xr ck_rhs_stat 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,77 @@
|
||||
.\"
|
||||
.\" 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 September 17, 2012
|
||||
.Dt CK_RHS_DESTROY 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_destroy
|
||||
.Nd destroy hash set
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Ft void
|
||||
.Fn ck_rhs_destroy "ck_rhs_t *hs"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_destroy 3
|
||||
function will request that the underlying allocator, as specified by the
|
||||
.Xr ck_rhs_init 3
|
||||
function, immediately destroy the object pointed to by the
|
||||
.Fa hs
|
||||
argument.
|
||||
The user must guarantee that no threads are accessing the object pointed to
|
||||
by
|
||||
.Fa hs
|
||||
when
|
||||
.Fn ck_rhs_destroy 3
|
||||
is called.
|
||||
.Sh RETURN VALUES
|
||||
.Fn ck_rhs_destroy 3
|
||||
has no return value.
|
||||
.Sh ERRORS
|
||||
This function is guaranteed not to fail.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_init 3 ,
|
||||
.Xr ck_rhs_move 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_iterator_init 3 ,
|
||||
.Xr ck_rhs_next 3 ,
|
||||
.Xr ck_rhs_get 3 ,
|
||||
.Xr ck_rhs_put 3 ,
|
||||
.Xr ck_rhs_put_unique 3 ,
|
||||
.Xr ck_rhs_set 3 ,
|
||||
.Xr ck_rhs_fas 3 ,
|
||||
.Xr ck_rhs_remove 3 ,
|
||||
.Xr ck_rhs_grow 3 ,
|
||||
.Xr ck_rhs_rebuild 3 ,
|
||||
.Xr ck_rhs_gc 3 ,
|
||||
.Xr ck_rhs_count 3 ,
|
||||
.Xr ck_rhs_reset 3 ,
|
||||
.Xr ck_rhs_reset_size 3 ,
|
||||
.Xr ck_rhs_stat 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,98 @@
|
||||
.\"
|
||||
.\" 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 June 20, 2013
|
||||
.Dt CK_RHS_FAS 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_fas
|
||||
.Nd fetch and store key in hash set
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Ft bool
|
||||
.Fn ck_rhs_fas "ck_rhs_t *hs" "unsigned long hash" "const void *key" "void **previous"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_fas 3
|
||||
function will fetch and store the key specified by the
|
||||
.Fa key
|
||||
argument in the hash set pointed to by the
|
||||
.Fa hs
|
||||
argument. The key specified by
|
||||
.Fa key
|
||||
is expected to have the hash value specified by the
|
||||
.Fa hash
|
||||
argument (which was previously generated using the
|
||||
.Xr CK_RHS_HASH 3
|
||||
macro).
|
||||
.Pp
|
||||
If the call to
|
||||
.Fn ck_rhs_fas 3
|
||||
was successful then the key specified by
|
||||
.Fa key
|
||||
was successfully stored in the hash set pointed to by
|
||||
.Fa hs .
|
||||
The key must already exist in the hash set, and is
|
||||
replaced by
|
||||
.Fa key
|
||||
and the previous value is stored into the void pointer
|
||||
pointed to by the
|
||||
.Fa previous
|
||||
argument. If the key does not exist in the hash set
|
||||
then the function will return false and the hash set
|
||||
is unchanged. This function
|
||||
is guaranteed to be stable with respect to memory usage.
|
||||
.Sh RETURN VALUES
|
||||
Upon successful completion,
|
||||
.Fn ck_rhs_fas 3
|
||||
returns true and otherwise returns false on failure.
|
||||
.Sh ERRORS
|
||||
Behavior is undefined if
|
||||
.Fa key
|
||||
or
|
||||
.Fa hs
|
||||
are uninitialized.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_init 3 ,
|
||||
.Xr ck_rhs_move 3 ,
|
||||
.Xr ck_rhs_destroy 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_iterator_init 3 ,
|
||||
.Xr ck_rhs_next 3 ,
|
||||
.Xr ck_rhs_get 3 ,
|
||||
.Xr ck_rhs_put 3 ,
|
||||
.Xr ck_rhs_put_unique 3 ,
|
||||
.Xr ck_rhs_remove 3 ,
|
||||
.Xr ck_rhs_grow 3 ,
|
||||
.Xr ck_rhs_rebuild 3 ,
|
||||
.Xr ck_rhs_gc 3 ,
|
||||
.Xr ck_rhs_count 3 ,
|
||||
.Xr ck_rhs_reset 3 ,
|
||||
.Xr ck_rhs_reset_size 3 ,
|
||||
.Xr ck_rhs_stat 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,73 @@
|
||||
.\"
|
||||
.\" 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 December 17, 2013
|
||||
.Dt CK_RHS_GC 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_gc
|
||||
.Nd perform maintenance on a hash set
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Ft bool
|
||||
.Fn ck_rhs_gc "ck_rhs_t *hs"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_gc 3
|
||||
function will perform various maintenance routines on the hash set
|
||||
pointed to by
|
||||
.Fa hs ,
|
||||
including recalculating the maximum number of probes.
|
||||
.Sh RETURN VALUES
|
||||
Upon successful completion,
|
||||
.Fn ck_rhs_gc 3
|
||||
returns true and otherwise returns false on failure due to memory allocation
|
||||
failure.
|
||||
.Sh ERRORS
|
||||
This function will only return false if there are internal memory allocation
|
||||
failures.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_init 3 ,
|
||||
.Xr ck_rhs_move 3 ,
|
||||
.Xr ck_rhs_destroy 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_iterator_init 3 ,
|
||||
.Xr ck_rhs_next 3 ,
|
||||
.Xr ck_rhs_get 3 ,
|
||||
.Xr ck_rhs_put 3 ,
|
||||
.Xr ck_rhs_put_unique 3 ,
|
||||
.Xr ck_rhs_grow 3 ,
|
||||
.Xr ck_rhs_rebuild 3 ,
|
||||
.Xr ck_rhs_set 3 ,
|
||||
.Xr ck_rhs_fas 3 ,
|
||||
.Xr ck_rhs_remove 3 ,
|
||||
.Xr ck_rhs_count 3 ,
|
||||
.Xr ck_rhs_reset 3 ,
|
||||
.Xr ck_rhs_reset_size 3 ,
|
||||
.Xr ck_rhs_stat 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,88 @@
|
||||
.\"
|
||||
.\" 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 September 17, 2012
|
||||
.Dt CK_RHS_GET 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_get
|
||||
.Nd load a key from a hash set
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Ft void *
|
||||
.Fn ck_rhs_get "ck_rhs_t *hs" "unsigned long hash" "const void *key"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_get 3
|
||||
function will return a pointer to a key in the hash set
|
||||
.Fa hs
|
||||
that is of equivalent value to the object pointed to by
|
||||
.Fa key .
|
||||
The key specified by
|
||||
.Fa key
|
||||
is expected to have the hash value specified by the
|
||||
.Fa hash
|
||||
argument (which is to have been previously generated using the
|
||||
.Xr CK_RHS_HASH 3
|
||||
macro).
|
||||
.Sh RETURN VALUES
|
||||
If the provided key is a member of
|
||||
.Fa hs
|
||||
then a pointer to the key as stored in
|
||||
.Fa hs
|
||||
is returned. If the key was not found in
|
||||
.Fa hs
|
||||
then a value of
|
||||
.Dv NULL
|
||||
is returned.
|
||||
.Sh ERRORS
|
||||
Behavior is undefined if
|
||||
.Fa entry
|
||||
or
|
||||
.Fa hs
|
||||
are uninitialized.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_init 3 ,
|
||||
.Xr ck_rhs_move 3 ,
|
||||
.Xr ck_rhs_destroy 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_iterator_init 3 ,
|
||||
.Xr ck_rhs_next 3 ,
|
||||
.Xr ck_rhs_put 3 ,
|
||||
.Xr ck_rhs_put_unique 3 ,
|
||||
.Xr ck_rhs_set 3 ,
|
||||
.Xr ck_rhs_fas 3 ,
|
||||
.Xr ck_rhs_remove 3 ,
|
||||
.Xr ck_rhs_grow 3 ,
|
||||
.Xr ck_rhs_rebuild 3 ,
|
||||
.Xr ck_rhs_gc 3 ,
|
||||
.Xr ck_rhs_count 3 ,
|
||||
.Xr ck_rhs_reset 3 ,
|
||||
.Xr ck_rhs_reset_size 3 ,
|
||||
.Xr ck_rhs_stat 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,81 @@
|
||||
.\"
|
||||
.\" 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 September 17, 2012
|
||||
.Dt CK_RHS_GROW 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_grow
|
||||
.Nd enlarge hash set capacity
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Ft bool
|
||||
.Fn ck_rhs_grow "ck_rhs_t *hs" "unsigned long capacity"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_grow 3
|
||||
function will resize the hash set in order to be
|
||||
able to store at least the number of entries specified by
|
||||
.Fa capacity
|
||||
at a load factor of one. The default hash set load factor
|
||||
is 0.5. If you wish to minimize the likelihood of memory allocations
|
||||
for a hash set meant to store n entries, then specify a
|
||||
.Fa capacity
|
||||
of 2n. The default behavior of ck_rhs is to round
|
||||
.Fa capacity
|
||||
to the next power of two if it is not already a power of two.
|
||||
.Sh RETURN VALUES
|
||||
Upon successful completion,
|
||||
.Fn ck_rhs_grow 3
|
||||
returns true and otherwise returns false on failure.
|
||||
.Sh ERRORS
|
||||
Behavior is undefined if
|
||||
.Fa hs
|
||||
is uninitialized. This function will only
|
||||
return false if there are internal memory allocation
|
||||
failures.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_init 3 ,
|
||||
.Xr ck_rhs_move 3 ,
|
||||
.Xr ck_rhs_destroy 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_iterator_init 3 ,
|
||||
.Xr ck_rhs_next 3 ,
|
||||
.Xr ck_rhs_get 3 ,
|
||||
.Xr ck_rhs_put 3 ,
|
||||
.Xr ck_rhs_put_unique 3 ,
|
||||
.Xr ck_rhs_set 3 ,
|
||||
.Xr ck_rhs_fas 3 ,
|
||||
.Xr ck_rhs_remove 3 ,
|
||||
.Xr ck_rhs_rebuild 3 ,
|
||||
.Xr ck_rhs_gc 3 ,
|
||||
.Xr ck_rhs_count 3 ,
|
||||
.Xr ck_rhs_reset 3 ,
|
||||
.Xr ck_rhs_reset_size 3 ,
|
||||
.Xr ck_rhs_stat 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,166 @@
|
||||
.\"
|
||||
.\" 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 September 17, 2012
|
||||
.Dt CK_RHS_INIT 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_init
|
||||
.Nd initialize a hash set
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Ft typedef unsigned long
|
||||
.Fn ck_rhs_hash_cb_t "const void *key" "unsigned long seed"
|
||||
.Ft typedef bool
|
||||
.Fn ck_rhs_compare_cb_t "const void *c1" "const void *c2"
|
||||
.Ft bool
|
||||
.Fn ck_rhs_init "ck_rhs_t *hs" "unsigned int mode" "ck_rhs_hash_cb_t *hash_function" "ck_rhs_compare_cb_t *compare" "struct ck_malloc *allocator" "unsigned long capacity" "unsigned long seed"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_init
|
||||
function initializes the hash set pointed to by the
|
||||
.Fa hs
|
||||
pointer.
|
||||
.Pp
|
||||
The argument
|
||||
.Fa mode
|
||||
specifies the type of key-value pairs to be stored in the
|
||||
hash set as well as the expected concurrent access model.
|
||||
The value of
|
||||
.Fa mode
|
||||
consists of a bitfield of one of the following:
|
||||
.Bl -tag -width indent
|
||||
.It CK_RHS_MODE_OBJECT
|
||||
The hash set is meant to store pointers to objects. This provides
|
||||
a hint that only CK_MD_VMA_BITS are necessary to encode the key
|
||||
argument. Any unused pointer bits are leveraged for internal
|
||||
optimizations.
|
||||
.It CK_RHS_MODE_DIRECT
|
||||
The hash set is meant to directly store key values and that all
|
||||
bits of the key are used to encode values.
|
||||
.It CK_RHS_MODE_READ_MOSTLY
|
||||
Optimize read operations over put/delete.
|
||||
.El
|
||||
.Pp
|
||||
The concurrent access model is specified by:
|
||||
.Bl -tag -width indent
|
||||
.It CK_RHS_MODE_SPMC
|
||||
The hash set should allow for concurrent readers in the
|
||||
presence of a single writer.
|
||||
.It CK_RHS_MODE_MPMC
|
||||
The hash set should allow for concurrent readers in the
|
||||
presence of concurrent writers. This is currently unsupported.
|
||||
.El
|
||||
.Pp
|
||||
The developer is free to specify additional workload hints.
|
||||
These hints are one of:
|
||||
.Bl -tag -width indent
|
||||
.El
|
||||
.Pp
|
||||
The argument
|
||||
.Fa hash_function
|
||||
is a mandatory pointer to a user-specified hash function.
|
||||
A user-specified hash function takes two arguments. The
|
||||
.Fa key
|
||||
argument is a pointer to a key. The
|
||||
.Fa seed
|
||||
argument is the initial seed associated with the hash set.
|
||||
This initial seed is specified by the user in
|
||||
.Xr ck_rhs_init 3 .
|
||||
.Pp
|
||||
The
|
||||
.Fa compare
|
||||
argument is an optional pointer to a user-specified
|
||||
key comparison function. If NULL is specified in this
|
||||
argument, then pointer equality will be used to determine
|
||||
key equality. A user-specified comparison function takes
|
||||
two arguments representing pointers to the objects being
|
||||
compared for equality. It is expected to return true
|
||||
if the keys are of equal value and false otherwise.
|
||||
.Pp
|
||||
The
|
||||
.Fa allocator
|
||||
argument is a pointer to a structure containing
|
||||
.Fa malloc
|
||||
and
|
||||
.Fa free
|
||||
function pointers which respectively define the memory allocation and
|
||||
destruction functions to be used by the hash set being initialized.
|
||||
.Pp
|
||||
The argument
|
||||
.Fa capacity
|
||||
represents the initial number of keys the hash
|
||||
set is expected to contain. This argument is simply a hint
|
||||
and the underlying implementation is free to allocate more
|
||||
or less memory than necessary to contain the number of entries
|
||||
.Fa capacity
|
||||
specifies.
|
||||
.Pp
|
||||
The argument
|
||||
.Fa seed
|
||||
specifies the initial seed used by the underlying hash function.
|
||||
The user is free to choose a value of their choice.
|
||||
.Sh RETURN VALUES
|
||||
Upon successful completion
|
||||
.Fn ck_rhs_init
|
||||
returns a value of
|
||||
.Dv true
|
||||
and otherwise returns a value of
|
||||
.Dv false
|
||||
to indicate an error.
|
||||
.Sh ERRORS
|
||||
.Bl -tag -width Er
|
||||
.Pp
|
||||
The behavior of
|
||||
.Fn ck_rhs_init
|
||||
is undefined if
|
||||
.Fa hs
|
||||
is not a pointer to a
|
||||
.Tn ck_rhs_t
|
||||
object.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_move 3 ,
|
||||
.Xr ck_rhs_destroy 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_iterator_init 3 ,
|
||||
.Xr ck_rhs_next 3 ,
|
||||
.Xr ck_rhs_get 3 ,
|
||||
.Xr ck_rhs_put 3 ,
|
||||
.Xr ck_rhs_put_unique 3 ,
|
||||
.Xr ck_rhs_set 3 ,
|
||||
.Xr ck_rhs_fas 3 ,
|
||||
.Xr ck_rhs_remove 3 ,
|
||||
.Xr ck_rhs_grow 3 ,
|
||||
.Xr ck_rhs_rebuild 3 ,
|
||||
.Xr ck_rhs_gc 3 ,
|
||||
.Xr ck_rhs_count 3 ,
|
||||
.Xr ck_rhs_reset 3 ,
|
||||
.Xr ck_rhs_reset_size 3 ,
|
||||
.Xr ck_rhs_stat 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,78 @@
|
||||
.\"
|
||||
.\" 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 September 17, 2012
|
||||
.Dt CK_RHS_ITERATOR_INIT 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_iterator_init
|
||||
.Nd initialize hash set iterator
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Pp
|
||||
.Dv ck_rhs_iterator_t iterator = CK_RHS_ITERATOR_INITIALIZER
|
||||
.Pp
|
||||
.Ft void
|
||||
.Fn ck_rhs_iterator_init "ck_rhs_iterator_t *iterator"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_iterator_init 3
|
||||
function will initialize the object pointed to
|
||||
by the
|
||||
.Fa iterator
|
||||
argument. Alternatively, an iterator may be statically
|
||||
initialized by assigning it to the CK_RHS_ITERATOR_INITIALIZER value.
|
||||
.Pp
|
||||
An iterator is used to iterate through hash set entries with the
|
||||
.Xr ck_rhs_next 3
|
||||
function.
|
||||
.Sh RETURN VALUES
|
||||
.Fn ck_rhs_iterator_init 3
|
||||
has no return value.
|
||||
.Sh ERRORS
|
||||
This function will not fail.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_init 3 ,
|
||||
.Xr ck_rhs_move 3 ,
|
||||
.Xr ck_rhs_destroy 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_next 3 ,
|
||||
.Xr ck_rhs_get 3 ,
|
||||
.Xr ck_rhs_put 3 ,
|
||||
.Xr ck_rhs_put_unique 3 ,
|
||||
.Xr ck_rhs_set 3 ,
|
||||
.Xr ck_rhs_fas 3 ,
|
||||
.Xr ck_rhs_remove 3 ,
|
||||
.Xr ck_rhs_grow 3 ,
|
||||
.Xr ck_rhs_rebuild 3 ,
|
||||
.Xr ck_rhs_gc 3 ,
|
||||
.Xr ck_rhs_count 3 ,
|
||||
.Xr ck_rhs_reset 3 ,
|
||||
.Xr ck_rhs_reset_size 3 ,
|
||||
.Xr ck_rhs_stat 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,90 @@
|
||||
.\"
|
||||
.\" 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 July 18, 2013
|
||||
.Dt CK_RHS_MOVE 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_move
|
||||
.Nd move one from hash set to another
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Ft bool
|
||||
.Fn ck_rhs_move "ck_rhs_t *destination" "ck_rhs_t *source" "ck_rhs_hash_cb_t *hash_cb" "ck_rhs_compare_cb_t *compare_cb" "struct ck_malloc *m"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_move 3
|
||||
function will initialize
|
||||
.Fa source
|
||||
from
|
||||
.Fa destination .
|
||||
The hash function is set to
|
||||
.Fa hash_cb ,
|
||||
comparison function to
|
||||
.Fa compare_cb
|
||||
and the allocator callbacks to
|
||||
.Fa m .
|
||||
Further modifications to
|
||||
.Fa source
|
||||
will result in undefined behavior. Concurrent
|
||||
.Xr ck_rhs_get 3
|
||||
and
|
||||
.Xr ck_rhs_fas 3
|
||||
operations to
|
||||
.Fa source
|
||||
are legal until the next write operation to
|
||||
.Fa destination .
|
||||
.Pp
|
||||
This operation moves ownership from one hash set object
|
||||
to another and re-assigns callback functions to developer-specified
|
||||
values. This allows for dynamic configuration of allocation
|
||||
callbacks and is necessary for use-cases involving executable code
|
||||
which may be unmapped underneath the hash set.
|
||||
.Sh RETURN VALUES
|
||||
Upon successful completion
|
||||
.Fn ck_rhs_move 3
|
||||
returns true and otherwise returns false to indicate an error.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_init 3 ,
|
||||
.Xr ck_rhs_destroy 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_iterator_init 3 ,
|
||||
.Xr ck_rhs_next 3 ,
|
||||
.Xr ck_rhs_put 3 ,
|
||||
.Xr ck_rhs_put_unique 3 ,
|
||||
.Xr ck_rhs_set 3 ,
|
||||
.Xr ck_rhs_fas 3 ,
|
||||
.Xr ck_rhs_remove 3 ,
|
||||
.Xr ck_rhs_grow 3 ,
|
||||
.Xr ck_rhs_rebuild 3 ,
|
||||
.Xr ck_rhs_gc 3 ,
|
||||
.Xr ck_rhs_count 3 ,
|
||||
.Xr ck_rhs_reset 3 ,
|
||||
.Xr ck_rhs_reset_size 3 ,
|
||||
.Xr ck_rhs_stat 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,92 @@
|
||||
.\"
|
||||
.\" 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 September 17, 2012
|
||||
.Dt CK_RHS_NEXT 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_next
|
||||
.Nd iterate to next entry in hash set
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Ft bool
|
||||
.Fn ck_rhs_next "ck_rhs_t *hs" "ck_rhs_iterator_t *iterator" "void **entry"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_next 3
|
||||
function will increment the iterator object pointed to by
|
||||
.Fa iterator
|
||||
to point to the next non-empty hash set entry. If
|
||||
.Fn ck_rhs_next 3
|
||||
returns true then the pointer pointed to by
|
||||
.Fa entry
|
||||
is initialized to the current hash set key pointed to by the
|
||||
.Fa iterator
|
||||
object.
|
||||
.Pp
|
||||
It is expected that
|
||||
.Fa iterator
|
||||
has been initialized using the
|
||||
.Xr ck_rhs_iterator_init 3
|
||||
function or statically initialized using CK_RHS_ITERATOR_INITIALIZER.
|
||||
.Sh RETURN VALUES
|
||||
If
|
||||
.Fn ck_rhs_next 3
|
||||
returns true then the object pointed to by
|
||||
.Fa entry
|
||||
points to a valid hash set key. If
|
||||
.Fn ck_rhs_next 3
|
||||
returns false then the value of the object pointed to by
|
||||
.Fa entry
|
||||
is undefined.
|
||||
.Sh ERRORS
|
||||
Behavior is undefined if
|
||||
.Fa iterator
|
||||
or
|
||||
.Fa hs
|
||||
are uninitialized.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_init 3 ,
|
||||
.Xr ck_rhs_move 3 ,
|
||||
.Xr ck_rhs_destroy 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_iterator_init 3 ,
|
||||
.Xr ck_rhs_get 3 ,
|
||||
.Xr ck_rhs_put 3 ,
|
||||
.Xr ck_rhs_put_unique 3 ,
|
||||
.Xr ck_rhs_set 3 ,
|
||||
.Xr ck_rhs_fas 3 ,
|
||||
.Xr ck_rhs_remove 3 ,
|
||||
.Xr ck_rhs_grow 3 ,
|
||||
.Xr ck_rhs_rebuild 3 ,
|
||||
.Xr ck_rhs_gc 3 ,
|
||||
.Xr ck_rhs_count 3 ,
|
||||
.Xr ck_rhs_reset 3 ,
|
||||
.Xr ck_rhs_reset_size 3 ,
|
||||
.Xr ck_rhs_stat 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,98 @@
|
||||
.\"
|
||||
.\" 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 September 17, 2012
|
||||
.Dt CK_RHS_PUT 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_put
|
||||
.Nd store unique key into a hash set
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Ft bool
|
||||
.Fn ck_rhs_put "ck_rhs_t *hs" "unsigned long hash" "const void *key"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_put 3
|
||||
function will store the key specified by the
|
||||
.Fa key
|
||||
argument in the hash set pointed to by the
|
||||
.Fa hs
|
||||
argument. The key specified by
|
||||
.Fa key
|
||||
is expected to have the hash value specified by the
|
||||
.Fa hash
|
||||
argument (which was previously generated using the
|
||||
.Xr CK_RHS_HASH 3
|
||||
macro).
|
||||
.Pp
|
||||
If the call to
|
||||
.Fn ck_rhs_put 3
|
||||
was successful then the key specified by
|
||||
.Fa key
|
||||
was successfully stored in the hash set pointed to by
|
||||
.Fa hs .
|
||||
The function will fail if a key with an
|
||||
equivalent value to
|
||||
.Fa key
|
||||
is already present in the hash set. For replacement
|
||||
semantics, please see the
|
||||
.Xr ck_rhs_set 3
|
||||
function.
|
||||
.Sh RETURN VALUES
|
||||
Upon successful completion,
|
||||
.Fn ck_rhs_put 3
|
||||
returns true and otherwise returns false on failure.
|
||||
.Sh ERRORS
|
||||
Behavior is undefined if
|
||||
.Fa key
|
||||
or
|
||||
.Fa hs
|
||||
are uninitialized. The function will also
|
||||
return false if the hash set could not be enlarged
|
||||
to accomodate key insertion.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_init 3 ,
|
||||
.Xr ck_rhs_move 3 ,
|
||||
.Xr ck_rhs_destroy 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_iterator_init 3 ,
|
||||
.Xr ck_rhs_next 3 ,
|
||||
.Xr ck_rhs_put_unique 3 ,
|
||||
.Xr ck_rhs_get 3 ,
|
||||
.Xr ck_rhs_set 3 ,
|
||||
.Xr ck_rhs_fas 3 ,
|
||||
.Xr ck_rhs_remove 3 ,
|
||||
.Xr ck_rhs_grow 3 ,
|
||||
.Xr ck_rhs_rebuild 3 ,
|
||||
.Xr ck_rhs_gc 3 ,
|
||||
.Xr ck_rhs_count 3 ,
|
||||
.Xr ck_rhs_reset 3 ,
|
||||
.Xr ck_rhs_reset_size 3 ,
|
||||
.Xr ck_rhs_stat 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,98 @@
|
||||
.\"
|
||||
.\" 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 December 7, 2013
|
||||
.Dt CK_RHS_PUT_UNIQUE 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_put_unique
|
||||
.Nd unconditionally store unique key into a hash set
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Ft bool
|
||||
.Fn ck_rhs_put_unique "ck_rhs_t *hs" "unsigned long hash" "const void *key"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_put_unique 3
|
||||
function will store the key specified by the
|
||||
.Fa key
|
||||
argument in the hash set pointed to by the
|
||||
.Fa hs
|
||||
argument. The key specified by
|
||||
.Fa key
|
||||
is expected to have the hash value specified by the
|
||||
.Fa hash
|
||||
argument (which was previously generated using the
|
||||
.Xr CK_RHS_HASH 3
|
||||
macro).
|
||||
.Pp
|
||||
If the call to
|
||||
.Fn ck_rhs_put 3
|
||||
was successful then the key specified by
|
||||
.Fa key
|
||||
was successfully stored in the hash set pointed to by
|
||||
.Fa hs .
|
||||
The function will cause undefined behavior if a key with an
|
||||
equivalent value is already present in the hash set. For replacement
|
||||
semantics, please see the
|
||||
.Xr ck_rhs_set 3
|
||||
function.
|
||||
.Sh RETURN VALUES
|
||||
Upon successful completion,
|
||||
.Fn ck_rhs_put_unique 3
|
||||
returns true and otherwise returns false on failure.
|
||||
.Sh ERRORS
|
||||
Behavior is undefined if
|
||||
.Fa key
|
||||
or
|
||||
.Fa hs
|
||||
are uninitialized. The function will also
|
||||
return false if the hash set could not be enlarged
|
||||
to accomodate key insertion. The function will
|
||||
result in undefined behavior if called for an
|
||||
already inserted key value.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_init 3 ,
|
||||
.Xr ck_rhs_move 3 ,
|
||||
.Xr ck_rhs_destroy 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_iterator_init 3 ,
|
||||
.Xr ck_rhs_next 3 ,
|
||||
.Xr ck_rhs_get 3 ,
|
||||
.Xr ck_rhs_put 3 ,
|
||||
.Xr ck_rhs_set 3 ,
|
||||
.Xr ck_rhs_fas 3 ,
|
||||
.Xr ck_rhs_remove 3 ,
|
||||
.Xr ck_rhs_grow 3 ,
|
||||
.Xr ck_rhs_rebuild 3 ,
|
||||
.Xr ck_rhs_gc 3 ,
|
||||
.Xr ck_rhs_count 3 ,
|
||||
.Xr ck_rhs_reset 3 ,
|
||||
.Xr ck_rhs_reset_size 3 ,
|
||||
.Xr ck_rhs_stat 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,76 @@
|
||||
.\"
|
||||
.\" 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 December 7, 2013
|
||||
.Dt CK_RHS_REBUILD 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_rebuild
|
||||
.Nd rebuild a hash set
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Ft bool
|
||||
.Fn ck_rhs_rebuild "ck_rhs_t *hs"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_rebuild 3
|
||||
function will regenerate the hash set pointed to by
|
||||
.Fa hs .
|
||||
This has the side-effect of pruning degradatory side-effects
|
||||
of workloads that are delete heavy. The regenerated hash
|
||||
set should have shorter probe sequences on average. This
|
||||
operation will require a significant amount of memory
|
||||
and is free to allocate a duplicate hash set in the
|
||||
rebuild process.
|
||||
.Sh RETURN VALUES
|
||||
Upon successful completion,
|
||||
.Fn ck_rhs_rebuild 3
|
||||
returns true and otherwise returns false on failure.
|
||||
.Sh ERRORS
|
||||
This function will only return false if there are internal memory allocation
|
||||
failures.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_init 3 ,
|
||||
.Xr ck_rhs_move 3 ,
|
||||
.Xr ck_rhs_destroy 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_iterator_init 3 ,
|
||||
.Xr ck_rhs_next 3 ,
|
||||
.Xr ck_rhs_get 3 ,
|
||||
.Xr ck_rhs_put 3 ,
|
||||
.Xr ck_rhs_put_unique 3 ,
|
||||
.Xr ck_rhs_set 3 ,
|
||||
.Xr ck_rhs_fas 3 ,
|
||||
.Xr ck_rhs_gc 3 ,
|
||||
.Xr ck_rhs_grow 3 ,
|
||||
.Xr ck_rhs_remove 3 ,
|
||||
.Xr ck_rhs_count 3 ,
|
||||
.Xr ck_rhs_reset 3 ,
|
||||
.Xr ck_rhs_reset_size 3 ,
|
||||
.Xr ck_rhs_stat 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,92 @@
|
||||
.\"
|
||||
.\" 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 September 17, 2012
|
||||
.Dt CK_RHS_REMOVE 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_remove
|
||||
.Nd remove key from a hash set
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Ft void *
|
||||
.Fn ck_rhs_remove "ck_rhs_t *hs" "unsigned long hash" "const void *key"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_remove 3
|
||||
function will attempt to remove the key specified by the
|
||||
.Fa key
|
||||
argument in the hash set pointed to by the
|
||||
.Fa hs
|
||||
argument. The key specified by
|
||||
.Fa key
|
||||
is expected to have the hash value specified by the
|
||||
.Fa hash
|
||||
argument (which was previously generated using the
|
||||
.Xr CK_RHS_HASH 3
|
||||
macro).
|
||||
.Pp
|
||||
If the call to
|
||||
.Fn ck_rhs_remove 3
|
||||
was successful then the key contained in the hash
|
||||
set is returned. If the key was not a member of the hash
|
||||
set then
|
||||
.Dv NULL
|
||||
is returned.
|
||||
.Sh RETURN VALUES
|
||||
Upon successful completion,
|
||||
.Fn ck_rhs_remove 3
|
||||
returns a pointer to a key and otherwise returns
|
||||
.Dv NULL
|
||||
on failure.
|
||||
.Sh ERRORS
|
||||
Behavior is undefined if
|
||||
.Fa key
|
||||
or
|
||||
.Fa hs
|
||||
are uninitialized.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_init 3 ,
|
||||
.Xr ck_rhs_move 3 ,
|
||||
.Xr ck_rhs_destroy 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_iterator_init 3 ,
|
||||
.Xr ck_rhs_next 3 ,
|
||||
.Xr ck_rhs_get 3 ,
|
||||
.Xr ck_rhs_put 3 ,
|
||||
.Xr ck_rhs_put_unique 3 ,
|
||||
.Xr ck_rhs_set 3 ,
|
||||
.Xr ck_rhs_fas 3 ,
|
||||
.Xr ck_rhs_grow 3 ,
|
||||
.Xr ck_rhs_gc 3 ,
|
||||
.Xr ck_rhs_rebuild 3 ,
|
||||
.Xr ck_rhs_count 3 ,
|
||||
.Xr ck_rhs_reset 3 ,
|
||||
.Xr ck_rhs_reset_size 3 ,
|
||||
.Xr ck_rhs_stat 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,77 @@
|
||||
.\"
|
||||
.\" 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 September 17, 2012
|
||||
.Dt CK_RHS_RESET 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_reset
|
||||
.Nd remove all keys from a hash set
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Ft bool
|
||||
.Fn ck_rhs_reset "ck_rhs_t *hs"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_reset 3
|
||||
function will remove all keys stored in the hash
|
||||
set pointed to by the
|
||||
.Fa hs
|
||||
argument.
|
||||
.Sh RETURN VALUES
|
||||
If successful,
|
||||
.Fn ck_rhs_reset 3
|
||||
will return true and will otherwise return false on failure. This
|
||||
function will only fail if a replacement hash set could not be
|
||||
allocated internally.
|
||||
.Sh ERRORS
|
||||
Behavior is undefined if
|
||||
.Fa hs
|
||||
is uninitialized. Behavior is
|
||||
undefined if this function is called by a non-writer
|
||||
thread.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_init 3 ,
|
||||
.Xr ck_rhs_move 3 ,
|
||||
.Xr ck_rhs_destroy 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_iterator_init 3 ,
|
||||
.Xr ck_rhs_next 3 ,
|
||||
.Xr ck_rhs_get 3 ,
|
||||
.Xr ck_rhs_put 3 ,
|
||||
.Xr ck_rhs_put_unique 3 ,
|
||||
.Xr ck_rhs_set 3 ,
|
||||
.Xr ck_rhs_fas 3 ,
|
||||
.Xr ck_rhs_remove 3 ,
|
||||
.Xr ck_rhs_reset_size 3 ,
|
||||
.Xr ck_rhs_grow 3 ,
|
||||
.Xr ck_rhs_gc 3 ,
|
||||
.Xr ck_rhs_rebuild 3 ,
|
||||
.Xr ck_rhs_count 3 ,
|
||||
.Xr ck_rhs_stat 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,80 @@
|
||||
.\"
|
||||
.\" 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 May 5, 2013
|
||||
.Dt CK_RHS_RESET_SIZE 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_reset_size
|
||||
.Nd remove all keys from a hash set
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Ft bool
|
||||
.Fn ck_rhs_reset_size "ck_rhs_t *hs" "unsigned long size"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_reset_size 3
|
||||
function will remove all keys stored in the hash
|
||||
set pointed to by the
|
||||
.Fa hs
|
||||
argument and create a new generation of the hash set that
|
||||
is preallocated for
|
||||
.Fa size
|
||||
entries.
|
||||
.Sh RETURN VALUES
|
||||
If successful,
|
||||
.Fn ck_rhs_reset_size 3
|
||||
will return true and will otherwise return false on failure. This
|
||||
function will only fail if a replacement hash set could not be
|
||||
allocated internally.
|
||||
.Sh ERRORS
|
||||
Behavior is undefined if
|
||||
.Fa hs
|
||||
is uninitialized. Behavior is
|
||||
undefined if this function is called by a non-writer
|
||||
thread.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_init 3 ,
|
||||
.Xr ck_rhs_move 3 ,
|
||||
.Xr ck_rhs_destroy 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_iterator_init 3 ,
|
||||
.Xr ck_rhs_next 3 ,
|
||||
.Xr ck_rhs_get 3 ,
|
||||
.Xr ck_rhs_put 3 ,
|
||||
.Xr ck_rhs_put_unique 3 ,
|
||||
.Xr ck_rhs_set 3 ,
|
||||
.Xr ck_rhs_fas 3 ,
|
||||
.Xr ck_rhs_remove 3 ,
|
||||
.Xr ck_rhs_grow 3 ,
|
||||
.Xr ck_rhs_gc 3 ,
|
||||
.Xr ck_rhs_rebuild 3 ,
|
||||
.Xr ck_rhs_count 3 ,
|
||||
.Xr ck_rhs_reset 3 ,
|
||||
.Xr ck_rhs_stat 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,102 @@
|
||||
.\"
|
||||
.\" 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 September 17, 2012
|
||||
.Dt CK_RHS_SET 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_set
|
||||
.Nd store key into a hash set
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Ft bool
|
||||
.Fn ck_rhs_set "ck_rhs_t *hs" "unsigned long hash" "const void *key" "void **previous"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_set 3
|
||||
function will store the key specified by the
|
||||
.Fa key
|
||||
argument in the hash set pointed to by the
|
||||
.Fa hs
|
||||
argument. The key specified by
|
||||
.Fa key
|
||||
is expected to have the hash value specified by the
|
||||
.Fa hash
|
||||
argument (which was previously generated using the
|
||||
.Xr CK_RHS_HASH 3
|
||||
macro).
|
||||
.Pp
|
||||
If the call to
|
||||
.Fn ck_rhs_set 3
|
||||
was successful then the key specified by
|
||||
.Fa key
|
||||
was successfully stored in the hash set pointed to by
|
||||
.Fa hs .
|
||||
If the key already exists in the hash set, then it is
|
||||
replaced by
|
||||
.Fa key
|
||||
and the previous value is stored into the void pointer
|
||||
pointed to by the
|
||||
.Fa previous
|
||||
argument. If previous is set to
|
||||
.Dv NULL
|
||||
then
|
||||
.Fa key
|
||||
was not a replacement for an existing entry in the hash set.
|
||||
.Sh RETURN VALUES
|
||||
Upon successful completion,
|
||||
.Fn ck_rhs_set 3
|
||||
returns true and otherwise returns false on failure.
|
||||
.Sh ERRORS
|
||||
Behavior is undefined if
|
||||
.Fa key
|
||||
or
|
||||
.Fa hs
|
||||
are uninitialized. The function will also
|
||||
return false if the hash set could not be enlarged
|
||||
to accomodate key insertion.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_init 3 ,
|
||||
.Xr ck_rhs_move 3 ,
|
||||
.Xr ck_rhs_destroy 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_iterator_init 3 ,
|
||||
.Xr ck_rhs_next 3 ,
|
||||
.Xr ck_rhs_get 3 ,
|
||||
.Xr ck_rhs_put 3 ,
|
||||
.Xr ck_rhs_put_unique 3 ,
|
||||
.Xr ck_rhs_fas 3 ,
|
||||
.Xr ck_rhs_remove 3 ,
|
||||
.Xr ck_rhs_grow 3 ,
|
||||
.Xr ck_rhs_gc 3 ,
|
||||
.Xr ck_rhs_rebuild 3 ,
|
||||
.Xr ck_rhs_count 3 ,
|
||||
.Xr ck_rhs_reset 3 ,
|
||||
.Xr ck_rhs_reset_size 3 ,
|
||||
.Xr ck_rhs_stat 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
@ -0,0 +1,80 @@
|
||||
.\"
|
||||
.\" 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 September 17, 2012
|
||||
.Dt CK_RHS_STAT 3
|
||||
.Sh NAME
|
||||
.Nm ck_rhs_stat
|
||||
.Nd get hash set status
|
||||
.Sh LIBRARY
|
||||
Concurrency Kit (libck, \-lck)
|
||||
.Sh SYNOPSIS
|
||||
.In ck_rhs.h
|
||||
.Ft void
|
||||
.Fn ck_rhs_stat "ck_rhs_t *hs" "struct ck_rhs_stat *st"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn ck_rhs_stat 3
|
||||
function will store various hash set statistics in
|
||||
the object pointed to by
|
||||
.Fa st .
|
||||
The ck_rhs_stat structure is defined as follows:
|
||||
.Bd -literal -offset indent
|
||||
struct ck_rhs_stat {
|
||||
unsigned long n_entries; /* Current number of keys in hash set. */
|
||||
unsigned int probe_maximum; /* Longest read-side probe sequence. */
|
||||
};
|
||||
.Ed
|
||||
.Sh RETURN VALUES
|
||||
.Fn ck_rhs_stat 3
|
||||
has no return value.
|
||||
.Sh ERRORS
|
||||
Behavior is undefined if
|
||||
.Fa hs
|
||||
is uninitialized. Behavior is
|
||||
undefined if this function is called by a non-writer
|
||||
thread.
|
||||
.Sh SEE ALSO
|
||||
.Xr ck_rhs_init 3 ,
|
||||
.Xr ck_rhs_move 3 ,
|
||||
.Xr ck_rhs_destroy 3 ,
|
||||
.Xr CK_RHS_HASH 3 ,
|
||||
.Xr ck_rhs_iterator_init 3 ,
|
||||
.Xr ck_rhs_next 3 ,
|
||||
.Xr ck_rhs_get 3 ,
|
||||
.Xr ck_rhs_put 3 ,
|
||||
.Xr ck_rhs_put_unique 3 ,
|
||||
.Xr ck_rhs_set 3 ,
|
||||
.Xr ck_rhs_fas 3 ,
|
||||
.Xr ck_rhs_remove 3 ,
|
||||
.Xr ck_rhs_grow 3 ,
|
||||
.Xr ck_rhs_gc 3 ,
|
||||
.Xr ck_rhs_rebuild 3 ,
|
||||
.Xr ck_rhs_count 3 ,
|
||||
.Xr ck_rhs_reset 3 ,
|
||||
.Xr ck_rhs_reset_size 3
|
||||
.Pp
|
||||
Additional information available at http://concurrencykit.org/
|
Loading…
Reference in new issue