projects
/
libcds.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
1299028
)
Removing trailing spaces
author
khizmax
<libcds.dev@gmail.com>
Sat, 29 Nov 2014 11:57:34 +0000
(14:57 +0300)
committer
khizmax
<libcds.dev@gmail.com>
Sat, 29 Nov 2014 11:57:34 +0000
(14:57 +0300)
30 files changed:
cds/container/cuckoo_map.h
patch
|
blob
|
history
cds/container/details/ellen_bintree_base.h
patch
|
blob
|
history
cds/container/details/skip_list_base.h
patch
|
blob
|
history
cds/container/ellen_bintree_set_rcu.h
patch
|
blob
|
history
cds/container/impl/ellen_bintree_map.h
patch
|
blob
|
history
cds/container/impl/skip_list_map.h
patch
|
blob
|
history
cds/container/impl/skip_list_set.h
patch
|
blob
|
history
cds/container/skip_list_map_nogc.h
patch
|
blob
|
history
cds/container/skip_list_map_rcu.h
patch
|
blob
|
history
cds/container/skip_list_set_rcu.h
patch
|
blob
|
history
cds/container/striped_map.h
patch
|
blob
|
history
cds/container/striped_set.h
patch
|
blob
|
history
cds/gc/details/hp.h
patch
|
blob
|
history
cds/gc/impl/dhp_decl.h
patch
|
blob
|
history
cds/gc/impl/hp_decl.h
patch
|
blob
|
history
cds/intrusive/cuckoo_set.h
patch
|
blob
|
history
cds/intrusive/details/skip_list_base.h
patch
|
blob
|
history
cds/intrusive/ellen_bintree_rcu.h
patch
|
blob
|
history
cds/intrusive/impl/ellen_bintree.h
patch
|
blob
|
history
cds/intrusive/impl/skip_list.h
patch
|
blob
|
history
cds/intrusive/lazy_list_rcu.h
patch
|
blob
|
history
cds/intrusive/skip_list_nogc.h
patch
|
blob
|
history
cds/intrusive/skip_list_rcu.h
patch
|
blob
|
history
cds/intrusive/striped_set.h
patch
|
blob
|
history
cds/intrusive/striped_set/boost_unordered_set.h
patch
|
blob
|
history
cds/opt/options.h
patch
|
blob
|
history
cds/urcu/exempt_ptr.h
patch
|
blob
|
history
change.log
patch
|
blob
|
history
tests/test-hdr/map/hdr_skiplist_map.h
patch
|
blob
|
history
tests/unit/map2/map_delodd.cpp
patch
|
blob
|
history
diff --git
a/cds/container/cuckoo_map.h
b/cds/container/cuckoo_map.h
index 826b1bb54fac825ca19aaf5dd4d88b351bf5726d..2ab664496266dff95057eb225940e6ab1043fa75 100644
(file)
--- a/
cds/container/cuckoo_map.h
+++ b/
cds/container/cuckoo_map.h
@@
-140,7
+140,7
@@
namespace cds { namespace container {
- \p Key - key type
- \p T - the type stored in the map.
- \p Traits - map traits., default is \p cuckoo::traits.
- \p Key - key type
- \p T - the type stored in the map.
- \p Traits - map traits., default is \p cuckoo::traits.
- It is possible to declare option-based set with \p cuckoo::make_traits metafunction
+ It is possible to declare option-based set with \p cuckoo::make_traits metafunction
result as \p Traits template argument.
<b>Examples</b>
result as \p Traits template argument.
<b>Examples</b>
diff --git
a/cds/container/details/ellen_bintree_base.h
b/cds/container/details/ellen_bintree_base.h
index 1439b8234623bce5a2d3aad585562c98d4ecff28..7a15e3591a1fff72f971ad6d8f54c59a6de945e9 100644
(file)
--- a/
cds/container/details/ellen_bintree_base.h
+++ b/
cds/container/details/ellen_bintree_base.h
@@
-192,7
+192,7
@@
namespace cds { namespace container {
/// Key copy policy (for \p EllenBinTreeMap)
/**
The key copy policy defines a functor to copy leaf node's key to internal node.
/// Key copy policy (for \p EllenBinTreeMap)
/**
The key copy policy defines a functor to copy leaf node's key to internal node.
- This policy is used only in \p EllenBinTreeMap.
+ This policy is used only in \p EllenBinTreeMap.
By default, assignment operator is used.
The copy functor interface is:
By default, assignment operator is used.
The copy functor interface is:
@@
-238,7
+238,7
@@
namespace cds { namespace container {
- \p opt::stat - internal statistics, by default disabled (\p ellen_bintree::empty_stat). To enable
it use \p ellen_bintree::stat.
- \p opt::backoff - back-off strategy, by default no strategy is used (\p cds::backoff::empty)
- \p opt::stat - internal statistics, by default disabled (\p ellen_bintree::empty_stat). To enable
it use \p ellen_bintree::stat.
- \p opt::backoff - back-off strategy, by default no strategy is used (\p cds::backoff::empty)
- - \p opt::rcu_check_deadlock - a deadlock checking policy, only for RCU-based tree.
+ - \p opt::rcu_check_deadlock - a deadlock checking policy, only for RCU-based tree.
Default is \p opt::v::rcu_throw_deadlock.
*/
template <typename... Options>
Default is \p opt::v::rcu_throw_deadlock.
*/
template <typename... Options>
diff --git
a/cds/container/details/skip_list_base.h
b/cds/container/details/skip_list_base.h
index 58e37a034967e6821d374a659b4ff3a0c73e62d9..ab59d10c6a4ce0154f184fb88cf997edc6c02ecc 100644
(file)
--- a/
cds/container/details/skip_list_base.h
+++ b/
cds/container/details/skip_list_base.h
@@
-25,7
+25,7
@@
namespace cds { namespace container {
/// Skip list internal statistics
template <typename EventCounter = cds::atomicity::event_counter>
/// Skip list internal statistics
template <typename EventCounter = cds::atomicity::event_counter>
- using stat = cds::intrusive::skip_list::stat < EventCounter >
;
+ using stat = cds::intrusive::skip_list::stat < EventCounter >;
/// Skip list empty internal statistics
typedef cds::intrusive::skip_list::empty_stat empty_stat;
/// Skip list empty internal statistics
typedef cds::intrusive::skip_list::empty_stat empty_stat;
@@
-105,7
+105,7
@@
namespace cds { namespace container {
- \p opt::allocator - allocator for skip-list node. Default is \ref CDS_DEFAULT_ALLOCATOR.
- \p opt::back_off - back-off strategy used. If the option is not specified, the \p cds::backoff::Default is used.
- \p opt::stat - internal statistics. Available types: \p skip_list::stat, \p skip_list::empty_stat (the default)
- \p opt::allocator - allocator for skip-list node. Default is \ref CDS_DEFAULT_ALLOCATOR.
- \p opt::back_off - back-off strategy used. If the option is not specified, the \p cds::backoff::Default is used.
- \p opt::stat - internal statistics. Available types: \p skip_list::stat, \p skip_list::empty_stat (the default)
- - \p opt::rcu_check_deadlock - a deadlock checking policy for RCU-based skip-list.
+ - \p opt::rcu_check_deadlock - a deadlock checking policy for RCU-based skip-list.
Default is \p opt::v::rcu_throw_deadlock
*/
Default is \p opt::v::rcu_throw_deadlock
*/
diff --git
a/cds/container/ellen_bintree_set_rcu.h
b/cds/container/ellen_bintree_set_rcu.h
index 724daf77d39fff1d153860278d8acbb634b3ab6d..a0f79b138d7faf122171c69fcdb6f2665d2b7c98 100644
(file)
--- a/
cds/container/ellen_bintree_set_rcu.h
+++ b/
cds/container/ellen_bintree_set_rcu.h
@@
-147,7
+147,7
@@
namespace cds { namespace container {
/// pointer to extracted node
using exempt_ptr = cds::urcu::exempt_ptr < gc, leaf_node, value_type, typename maker::intrusive_traits::disposer,
cds::urcu::details::conventional_exempt_member_cast < leaf_node, value_type >
/// pointer to extracted node
using exempt_ptr = cds::urcu::exempt_ptr < gc, leaf_node, value_type, typename maker::intrusive_traits::disposer,
cds::urcu::details::conventional_exempt_member_cast < leaf_node, value_type >
- >
;
+ >;
public:
/// Default constructor
public:
/// Default constructor
@@
-196,7
+196,7
@@
namespace cds { namespace container {
\endcode
where \p val is the item inserted. User-defined functor \p f should guarantee that during changing
\p val no any other changes could be made on this set's item by concurrent threads.
\endcode
where \p val is the item inserted. User-defined functor \p f should guarantee that during changing
\p val no any other changes could be made on this set's item by concurrent threads.
- The user-defined functor is called only if the inserting is success.
+ The user-defined functor is called only if the inserting is success.
RCU \p synchronize() can be called. RCU should not be locked.
*/
RCU \p synchronize() can be called. RCU should not be locked.
*/
diff --git
a/cds/container/impl/ellen_bintree_map.h
b/cds/container/impl/ellen_bintree_map.h
index 1d78da4bdf37891fc0f644468a8f8225abc599c7..3cd74182e8b31d50947f6c9c4213bf8a0b259f9e 100644
(file)
--- a/
cds/container/impl/ellen_bintree_map.h
+++ b/
cds/container/impl/ellen_bintree_map.h
@@
-80,7
+80,7
@@
namespace cds { namespace container {
typedef Key key_type; ///< type of a key stored in the map
typedef T mapped_type; ///< type of value stored in the map
typedef std::pair< key_type const, mapped_type > value_type ; ///< Key-value pair stored in leaf node of the mp
typedef Key key_type; ///< type of a key stored in the map
typedef T mapped_type; ///< type of value stored in the map
typedef std::pair< key_type const, mapped_type > value_type ; ///< Key-value pair stored in leaf node of the mp
- typedef Traits traits; ///< Map traits
+ typedef Traits traits; ///< Map traits
# ifdef CDS_DOXYGEN_INVOKED
typedef implementation_defined key_comparator; ///< key compare functor based on \p Traits::compare and \p Traits::less
# ifdef CDS_DOXYGEN_INVOKED
typedef implementation_defined key_comparator; ///< key compare functor based on \p Traits::compare and \p Traits::less
diff --git
a/cds/container/impl/skip_list_map.h
b/cds/container/impl/skip_list_map.h
index 9d0bb2ac5e59fcfaeef1a68621e616b992e6c63d..3eb13f8b9683be21ed6670d9c98695cd7e033da6 100644
(file)
--- a/
cds/container/impl/skip_list_map.h
+++ b/
cds/container/impl/skip_list_map.h
@@
-36,7
+36,7
@@
namespace cds { namespace container {
- \p K - type of a key to be stored in the list.
- \p T - type of a value to be stored in the list.
- \p Traits - map traits, default is \p skip_list::traits
- \p K - type of a key to be stored in the list.
- \p T - type of a value to be stored in the list.
- \p Traits - map traits, default is \p skip_list::traits
- It is possible to declare option-based list with \p cds::container::skip_list::make_traits metafunction
+ It is possible to declare option-based list with \p cds::container::skip_list::make_traits metafunction
istead of \p Traits template argument.
Like STL map class, \p %SkipListMap stores the key-value pair as <tt>std:pair< K const, T></tt>.
istead of \p Traits template argument.
Like STL map class, \p %SkipListMap stores the key-value pair as <tt>std:pair< K const, T></tt>.
diff --git
a/cds/container/impl/skip_list_set.h
b/cds/container/impl/skip_list_set.h
index 3f42454415748f855f601d43c4bb10c1854eb941..18bcf09d398e860638e42b2989f855f218a81e49 100644
(file)
--- a/
cds/container/impl/skip_list_set.h
+++ b/
cds/container/impl/skip_list_set.h
@@
-36,7
+36,7
@@
namespace cds { namespace container {
- \p GC - Garbage collector used.
- \p T - type to be stored in the list.
- \p Traits - set traits, default is \p skip_list::traits.
- \p GC - Garbage collector used.
- \p T - type to be stored in the list.
- \p Traits - set traits, default is \p skip_list::traits.
- It is possible to declare option-based list with \p cds::container::skip_list::make_traits metafunction
+ It is possible to declare option-based list with \p cds::container::skip_list::make_traits metafunction
istead of \p Traits template argument.
@warning The skip-list requires up to 67 hazard pointers that may be critical for some GCs for which
istead of \p Traits template argument.
@warning The skip-list requires up to 67 hazard pointers that may be critical for some GCs for which
diff --git
a/cds/container/skip_list_map_nogc.h
b/cds/container/skip_list_map_nogc.h
index 7745b7ea1f108cad3e2a1ba4401ca244d90eb5c0..a14890dc2061fe842877e6335e8897a96be85efb 100644
(file)
--- a/
cds/container/skip_list_map_nogc.h
+++ b/
cds/container/skip_list_map_nogc.h
@@
-31,7
+31,7
@@
namespace cds { namespace container {
- \p K - type of a key to be stored in the map.
- \p T - type of a value to be stored in the map.
- \p Traits - map traits, default is \p skip_list::traits
- \p K - type of a key to be stored in the map.
- \p T - type of a value to be stored in the map.
- \p Traits - map traits, default is \p skip_list::traits
- It is possible to declare option-based list with \p cds::container::skip_list::make_traits
+ It is possible to declare option-based list with \p cds::container::skip_list::make_traits
metafunction istead of \p Traits template argument.
*/
template <
metafunction istead of \p Traits template argument.
*/
template <
diff --git
a/cds/container/skip_list_map_rcu.h
b/cds/container/skip_list_map_rcu.h
index e47917c3e3daa9d7220aa24febd6d1d092a6bf9a..49245d7eabe80315a00a7ab5ace1ebb2a3b79c07 100644
(file)
--- a/
cds/container/skip_list_map_rcu.h
+++ b/
cds/container/skip_list_map_rcu.h
@@
-444,7
+444,7
@@
namespace cds { namespace container {
/// Extracts an item with minimal key from the map
/**
/// Extracts an item with minimal key from the map
/**
- The function searches an item with minimal key, unlinks it,
+ The function searches an item with minimal key, unlinks it,
and returns \ref cds::urcu::exempt_ptr "exempt_ptr" pointer to the item.
If the skip-list is empty the function returns an empty \p exempt_ptr.
and returns \ref cds::urcu::exempt_ptr "exempt_ptr" pointer to the item.
If the skip-list is empty the function returns an empty \p exempt_ptr.
@@
-461,7
+461,7
@@
namespace cds { namespace container {
/// Extracts an item with maximal key from the map
/**
/// Extracts an item with maximal key from the map
/**
- The function searches an item with maximal key, unlinks it from the set,
+ The function searches an item with maximal key, unlinks it from the set,
and returns \ref cds::urcu::exempt_ptr "exempt_ptr" pointer to the item.
If the skip-list is empty the function returns an empty \p exempt_ptr.
and returns \ref cds::urcu::exempt_ptr "exempt_ptr" pointer to the item.
If the skip-list is empty the function returns an empty \p exempt_ptr.
diff --git
a/cds/container/skip_list_set_rcu.h
b/cds/container/skip_list_set_rcu.h
index a61ce17af46df20c78890f294e158743a3e262b9..5004833531d4fab7f749cdb2fed2922df023dc29 100644
(file)
--- a/
cds/container/skip_list_set_rcu.h
+++ b/
cds/container/skip_list_set_rcu.h
@@
-477,7
+477,7
@@
namespace cds { namespace container {
/// Extracts an item with minimal key from the set
/**
/// Extracts an item with minimal key from the set
/**
- The function searches an item with minimal key, unlinks it,
+ The function searches an item with minimal key, unlinks it,
and returns \ref cds::urcu::exempt_ptr "exempt_ptr" pointer to the item.
If the skip-list is empty the function returns an empty \p exempt_ptr.
and returns \ref cds::urcu::exempt_ptr "exempt_ptr" pointer to the item.
If the skip-list is empty the function returns an empty \p exempt_ptr.
@@
-494,7
+494,7
@@
namespace cds { namespace container {
/// Extracts an item with maximal key from the set
/**
/// Extracts an item with maximal key from the set
/**
- The function searches an item with maximal key, unlinks it from the set,
+ The function searches an item with maximal key, unlinks it from the set,
and returns \ref cds::urcu::exempt_ptr "exempt_ptr" pointer to the item.
If the skip-list is empty the function returns an empty \p exempt_ptr.
and returns \ref cds::urcu::exempt_ptr "exempt_ptr" pointer to the item.
If the skip-list is empty the function returns an empty \p exempt_ptr.
diff --git
a/cds/container/striped_map.h
b/cds/container/striped_map.h
index 8969d5bef6aa13444f32ab551b4c191ad86c34f3..78022b61c065f0b86601c233c6668946ec5a2a8a 100644
(file)
--- a/
cds/container/striped_map.h
+++ b/
cds/container/striped_map.h
@@
-77,7
+77,7
@@
namespace cds { namespace container {
If the option is not specified, the \p %opt::less is used.
- \p opt::less - specifies binary predicate used for key comparison. Default is \p std::less<T>.
- \p opt::item_counter - item counter type. Default is \p atomicity::item_counter since some operation on the counter is performed
If the option is not specified, the \p %opt::less is used.
- \p opt::less - specifies binary predicate used for key comparison. Default is \p std::less<T>.
- \p opt::item_counter - item counter type. Default is \p atomicity::item_counter since some operation on the counter is performed
- without locks. Note that item counting is an essential part of the map algorithm, so dummy counter
+ without locks. Note that item counting is an essential part of the map algorithm, so dummy counter
like as \p atomicity::empty_item_counter is not suitable.
- \p opt::allocator - the allocator type using for memory allocation of bucket table and lock array. Default is \ref CDS_DEFAULT_ALLOCATOR.
- \p opt::resizing_policy - the resizing policy that is a functor that decides when to resize the hash map.
like as \p atomicity::empty_item_counter is not suitable.
- \p opt::allocator - the allocator type using for memory allocation of bucket table and lock array. Default is \ref CDS_DEFAULT_ALLOCATOR.
- \p opt::resizing_policy - the resizing policy that is a functor that decides when to resize the hash map.
diff --git
a/cds/container/striped_set.h
b/cds/container/striped_set.h
index 1eae6b91010a4da8db07670308b845f2ccf01dd0..1f142f0ca93f8dd97fa4bef4f7022d5088110649 100644
(file)
--- a/
cds/container/striped_set.h
+++ b/
cds/container/striped_set.h
@@
-36,13
+36,13
@@
namespace cds { namespace container {
- \p opt::mutex_policy - concurrent access policy.
Available policies: \p intrusive::striped_set::striping, \p intrusive::striped_set::refinable.
Default is \p %striped_set::striping.
- \p opt::mutex_policy - concurrent access policy.
Available policies: \p intrusive::striped_set::striping, \p intrusive::striped_set::refinable.
Default is \p %striped_set::striping.
- - \p opt::hash - hash functor. Default option value see <tt>opt::v::hash_selector<opt::none> </tt>
+ - \p opt::hash - hash functor. Default option value see <tt>opt::v::hash_selector<opt::none> </tt>
which selects default hash functor for your compiler.
- \p opt::compare - key comparison functor. No default functor is provided.
If the option is not specified, the \p %opt::less is used.
- \p opt::less - specifies binary predicate used for key comparison. Default is \p std::less<T>.
- \p opt::item_counter - item counter type. Default is \p atomicity::item_counter since some operation on the counter is performed
which selects default hash functor for your compiler.
- \p opt::compare - key comparison functor. No default functor is provided.
If the option is not specified, the \p %opt::less is used.
- \p opt::less - specifies binary predicate used for key comparison. Default is \p std::less<T>.
- \p opt::item_counter - item counter type. Default is \p atomicity::item_counter since some operation on the counter is performed
- without locks. Note that item counting is an essential part of the set algorithm, so dummy counter
+ without locks. Note that item counting is an essential part of the set algorithm, so dummy counter
like as \p atomicity::empty_item_counter is not suitable.
- \p opt::allocator - the allocator type using for memory allocation of bucket table and lock array. Default is \ref CDS_DEFAULT_ALLOCATOR.
- \p opt::resizing_policy - the resizing policy that is a functor that decides when to resize the hash set.
like as \p atomicity::empty_item_counter is not suitable.
- \p opt::allocator - the allocator type using for memory allocation of bucket table and lock array. Default is \ref CDS_DEFAULT_ALLOCATOR.
- \p opt::resizing_policy - the resizing policy that is a functor that decides when to resize the hash set.
diff --git
a/cds/gc/details/hp.h
b/cds/gc/details/hp.h
index 5685f0d098ef8e0086d31d6382746c4e5df3ad31..c58192d9630b16fa0abcc2fdc0c272fa1e88df08 100644
(file)
--- a/
cds/gc/details/hp.h
+++ b/
cds/gc/details/hp.h
@@
-92,14
+92,14
@@
namespace cds {
The capacity is constant for any thread. It is defined by cds::gc::hp::GarbageCollector.
*/
size_t capacity() const CDS_NOEXCEPT
The capacity is constant for any thread. It is defined by cds::gc::hp::GarbageCollector.
*/
size_t capacity() const CDS_NOEXCEPT
- {
- return m_arr.capacity();
+ {
+ return m_arr.capacity();
}
/// Current vector size (count of retired pointers in the vector)
size_t size() const CDS_NOEXCEPT
}
/// Current vector size (count of retired pointers in the vector)
size_t size() const CDS_NOEXCEPT
- {
- return m_nSize;
+ {
+ return m_nSize;
}
/// Set vector size. Uses internally
}
/// Set vector size. Uses internally
@@
-125,14
+125,14
@@
namespace cds {
/// Begin iterator
iterator begin() CDS_NOEXCEPT
/// Begin iterator
iterator begin() CDS_NOEXCEPT
- {
- return m_arr.begin();
+ {
+ return m_arr.begin();
}
/// End iterator
iterator end() CDS_NOEXCEPT
}
/// End iterator
iterator end() CDS_NOEXCEPT
- {
- return m_arr.begin() + m_nSize
;
+ {
+ return m_arr.begin() + m_nSize
;
}
/// Clears the vector. After clearing, size() == 0
}
/// Clears the vector. After clearing, size() == 0
@@
-344,20
+344,20
@@
namespace cds {
/// Returns max Hazard Pointer count defined in construction time
size_t getHazardPointerCount() const CDS_NOEXCEPT
/// Returns max Hazard Pointer count defined in construction time
size_t getHazardPointerCount() const CDS_NOEXCEPT
- {
- return m_nHazardPointerCount;
+ {
+ return m_nHazardPointerCount;
}
/// Returns max thread count defined in construction time
size_t getMaxThreadCount() const CDS_NOEXCEPT
}
/// Returns max thread count defined in construction time
size_t getMaxThreadCount() const CDS_NOEXCEPT
- {
- return m_nMaxThreadCount;
+ {
+ return m_nMaxThreadCount;
}
/// Returns max size of retired objects array. It is defined in construction time
size_t getMaxRetiredPtrCount() const CDS_NOEXCEPT
}
/// Returns max size of retired objects array. It is defined in construction time
size_t getMaxRetiredPtrCount() const CDS_NOEXCEPT
- {
- return m_nMaxRetiredPtrCount;
+ {
+ return m_nMaxRetiredPtrCount;
}
// Internal statistics
}
// Internal statistics
@@
-602,7
+602,7
@@
namespace cds {
/// Auto hp_guard.
/**
This class encapsulates Hazard Pointer guard to protect a pointer against deletion .
/// Auto hp_guard.
/**
This class encapsulates Hazard Pointer guard to protect a pointer against deletion .
- It allocates one HP from thread's HP array in constructor and free the hazard pointer allocated
+ It allocates one HP from thread's HP array in constructor and free the hazard pointer allocated
in destructor.
*/
class guard
in destructor.
*/
class guard
diff --git
a/cds/gc/impl/dhp_decl.h
b/cds/gc/impl/dhp_decl.h
index 1cfb3f4891c617eb1a59d6f1fec2e125fc8cddb0..a3825f063f10922a32322c6d69544580265bc6b4 100644
(file)
--- a/
cds/gc/impl/dhp_decl.h
+++ b/
cds/gc/impl/dhp_decl.h
@@
-591,9
+591,9
@@
namespace cds { namespace gc {
The function always returns \p true since the guard count is unlimited for
\p gc::DHP garbage collector.
*/
The function always returns \p true since the guard count is unlimited for
\p gc::DHP garbage collector.
*/
- static CDS_CONSTEXPR bool check_available_guards(
+ static CDS_CONSTEXPR bool check_available_guards(
#ifdef CDS_DOXYGEN_INVOKED
#ifdef CDS_DOXYGEN_INVOKED
- size_t nCountNeeded,
+ size_t nCountNeeded,
#else
size_t,
#endif
#else
size_t,
#endif
diff --git
a/cds/gc/impl/hp_decl.h
b/cds/gc/impl/hp_decl.h
index e5790d7b4f39819603de312466b904b7ed88cf80..e47ff0cf16b2a95f5fb87e5a054b353e048db49d 100644
(file)
--- a/
cds/gc/impl/hp_decl.h
+++ b/
cds/gc/impl/hp_decl.h
@@
-105,7
+105,7
@@
namespace cds { namespace gc {
A guard is the hazard pointer.
Additionally, the \p %Guard class manages allocation and deallocation of the hazard pointer
A guard is the hazard pointer.
Additionally, the \p %Guard class manages allocation and deallocation of the hazard pointer
- A \p %Guard object is not copy- and move-constructible
+ A \p %Guard object is not copy- and move-constructible
and not copy- and move-assignable.
*/
class Guard : public hp::guard
and not copy- and move-assignable.
*/
class Guard : public hp::guard
@@
-612,7
+612,7
@@
namespace cds { namespace gc {
/// Checks if count of hazard pointer is no less than \p nCountNeeded
/**
/// Checks if count of hazard pointer is no less than \p nCountNeeded
/**
- If \p bRaiseException is \p true (that is the default), the function raises
+ If \p bRaiseException is \p true (that is the default), the function raises
an \p std::overflow_error exception "Too few hazard pointers"
if \p nCountNeeded is more than the count of hazard pointer per thread.
*/
an \p std::overflow_error exception "Too few hazard pointers"
if \p nCountNeeded is more than the count of hazard pointer per thread.
*/
diff --git
a/cds/intrusive/cuckoo_set.h
b/cds/intrusive/cuckoo_set.h
index e747ac37c852e6e6b5fbe46a96fc0eead189e134..c4be8d7ab9d31c983b069b7874bc57f5c06184c7 100644
(file)
--- a/
cds/intrusive/cuckoo_set.h
+++ b/
cds/intrusive/cuckoo_set.h
@@
-1169,7
+1169,7
@@
namespace cds { namespace intrusive {
/// Metafunction converting option list to \p CuckooSet traits
/**
Template argument list \p Options... are:
/// Metafunction converting option list to \p CuckooSet traits
/**
Template argument list \p Options... are:
- - \p intrusive::opt::hook - hook used. Possible values are: \p cuckoo::base_hook, \p cuckoo::member_hook,
+ - \p intrusive::opt::hook - hook used. Possible values are: \p cuckoo::base_hook, \p cuckoo::member_hook,
\p cuckoo::traits_hook.
If the option is not specified, <tt>%cuckoo::base_hook<></tt> is used.
- \p opt::hash - hash functor tuple, mandatory option. At least, two hash functors should be provided. All hash functor
\p cuckoo::traits_hook.
If the option is not specified, <tt>%cuckoo::base_hook<></tt> is used.
- \p opt::hash - hash functor tuple, mandatory option. At least, two hash functors should be provided. All hash functor
@@
-1658,7
+1658,7
@@
namespace cds { namespace intrusive {
<b>How to use</b>
You should incorporate \p cuckoo::node into your struct \p T and provide
<b>How to use</b>
You should incorporate \p cuckoo::node into your struct \p T and provide
- appropriate \p cuckoo::traits::hook in your \p Traits template parameters.
+ appropriate \p cuckoo::traits::hook in your \p Traits template parameters.
Usually, for \p Traits you define a struct based on \p cuckoo::traits.
Example for base hook and list-based probe-set:
Usually, for \p Traits you define a struct based on \p cuckoo::traits.
Example for base hook and list-based probe-set:
diff --git
a/cds/intrusive/details/skip_list_base.h
b/cds/intrusive/details/skip_list_base.h
index 4f2843cf4f65288762014e32d618fd71030ee2b3..d4e6de1577764eb7759c7add9d34db992f8c21c9 100644
(file)
--- a/
cds/intrusive/details/skip_list_base.h
+++ b/
cds/intrusive/details/skip_list_base.h
@@
-25,7
+25,7
@@
namespace cds { namespace intrusive {
- \p Tag - a \ref cds_intrusive_hook_tag "tag"
*/
template <class GC, typename Tag = opt::none>
- \p Tag - a \ref cds_intrusive_hook_tag "tag"
*/
template <class GC, typename Tag = opt::none>
- class node
+ class node
{
public:
typedef GC gc; ///< Garbage collector
{
public:
typedef GC gc; ///< Garbage collector
@@
-576,7
+576,7
@@
namespace cds { namespace intrusive {
To enable it use \p atomicity::item_counter
- \p opt::memory_model - C++ memory ordering model. Can be \p opt::v::relaxed_ordering (relaxed memory model, the default)
or \p opt::v::sequential_consistent (sequentially consisnent memory model).
To enable it use \p atomicity::item_counter
- \p opt::memory_model - C++ memory ordering model. Can be \p opt::v::relaxed_ordering (relaxed memory model, the default)
or \p opt::v::sequential_consistent (sequentially consisnent memory model).
- - \p skip_list::random_level_generator - random level generator. Can be \p skip_list::xorshift,
+ - \p skip_list::random_level_generator - random level generator. Can be \p skip_list::xorshift,
\p skip_list::turbo_pascal (the default) or
user-provided one. See \p skip_list::random_level_generator option description for explanation.
- \p opt::allocator - although the skip-list is an intrusive container,
\p skip_list::turbo_pascal (the default) or
user-provided one. See \p skip_list::random_level_generator option description for explanation.
- \p opt::allocator - although the skip-list is an intrusive container,
diff --git
a/cds/intrusive/ellen_bintree_rcu.h
b/cds/intrusive/ellen_bintree_rcu.h
index 56553ae80aee55767001967244e8b83129bdc8b2..e1120c1a17fa4798543ff229d0018bdcd69b5755 100644
(file)
--- a/
cds/intrusive/ellen_bintree_rcu.h
+++ b/
cds/intrusive/ellen_bintree_rcu.h
@@
-205,7
+205,7
@@
namespace cds { namespace intrusive {
// ...
\endcode
// ...
\endcode
- Instead of declaring \p set_traits type traits we can use option-based syntax with
+ Instead of declaring \p set_traits type traits we can use option-based syntax with
\p ellen_bintree::make_traits metafunction, for example:
\code
typedef cds::intrusive::EllenBinTree< gpb_rcu, std::string, Foo,
\p ellen_bintree::make_traits metafunction, for example:
\code
typedef cds::intrusive::EllenBinTree< gpb_rcu, std::string, Foo,
@@
-967,7
+967,7
@@
namespace cds { namespace intrusive {
/// Extracts an item with minimal key from the tree
/**
/// Extracts an item with minimal key from the tree
/**
- The function searches an item with minimal key, unlinks it, and returns
+ The function searches an item with minimal key, unlinks it, and returns
\ref cds::urcu::exempt_ptr "exempt_ptr" pointer to the leftmost item.
If the tree is empty the function returns empty \p exempt_ptr.
\ref cds::urcu::exempt_ptr "exempt_ptr" pointer to the leftmost item.
If the tree is empty the function returns empty \p exempt_ptr.
@@
-988,7
+988,7
@@
namespace cds { namespace intrusive {
/// Extracts an item with maximal key from the tree
/**
/// Extracts an item with maximal key from the tree
/**
- The function searches an item with maximal key, unlinks it, and returns
+ The function searches an item with maximal key, unlinks it, and returns
\ref cds::urcu::exempt_ptr "exempt_ptr" pointer to the rightmost item.
If the tree is empty the function returns empty \p exempt_ptr.
\ref cds::urcu::exempt_ptr "exempt_ptr" pointer to the rightmost item.
If the tree is empty the function returns empty \p exempt_ptr.
diff --git
a/cds/intrusive/impl/ellen_bintree.h
b/cds/intrusive/impl/ellen_bintree.h
index 22f375b0c66ff06157da9a58a2a38531bb56886b..bf10cf73708088acd604e67031f2008acf557cdf 100644
(file)
--- a/
cds/intrusive/impl/ellen_bintree.h
+++ b/
cds/intrusive/impl/ellen_bintree.h
@@
-1382,7
+1382,7
@@
namespace cds { namespace intrusive {
update_ptr updGP( res.updGrandParent.ptr() );
if ( res.pGrandParent->m_pUpdate.compare_exchange_strong( updGP, update_ptr( pOp, update_desc::DFlag ),
update_ptr updGP( res.updGrandParent.ptr() );
if ( res.pGrandParent->m_pUpdate.compare_exchange_strong( updGP, update_ptr( pOp, update_desc::DFlag ),
- memory_model::memory_order_acquire, atomics::memory_order_relaxed ) )
+ memory_model::memory_order_acquire, atomics::memory_order_relaxed ) )
{
if ( help_delete( pOp ) )
break;
{
if ( help_delete( pOp ) )
break;
diff --git
a/cds/intrusive/impl/skip_list.h
b/cds/intrusive/impl/skip_list.h
index 7a5043d71e4ab7a46058a9039a415914550606b2..5816970320852520f4e443b857e2f963be5d6a7e 100644
(file)
--- a/
cds/intrusive/impl/skip_list.h
+++ b/
cds/intrusive/impl/skip_list.h
@@
-181,7
+181,7
@@
namespace cds { namespace intrusive {
- \p T - type to be stored in the list. The type must be based on \p skip_list::node (for \p skip_list::base_hook)
or it must have a member of type \p skip_list::node (for \p skip_list::member_hook).
- \p Traits - skip-list traits, default is \p skip_list::traits.
- \p T - type to be stored in the list. The type must be based on \p skip_list::node (for \p skip_list::base_hook)
or it must have a member of type \p skip_list::node (for \p skip_list::member_hook).
- \p Traits - skip-list traits, default is \p skip_list::traits.
- It is possible to declare option-based list with \p cds::intrusive::skip_list::make_traits metafunction istead of \p Traits
+ It is possible to declare option-based list with \p cds::intrusive::skip_list::make_traits metafunction istead of \p Traits
template argument.
@warning The skip-list requires up to 67 hazard pointers that may be critical for some GCs for which
template argument.
@warning The skip-list requires up to 67 hazard pointers that may be critical for some GCs for which
@@
-1278,7
+1278,7
@@
namespace cds { namespace intrusive {
/// Extracts an item with maximal key from the list
/**
/// Extracts an item with maximal key from the list
/**
- The function searches an item with maximal key, unlinks it, and returns the pointer to item
+ The function searches an item with maximal key, unlinks it, and returns the pointer to item
as \p guarded_ptr object.
If the skip-list is empty the function returns an empty \p guarded_ptr.
as \p guarded_ptr object.
If the skip-list is empty the function returns an empty \p guarded_ptr.
diff --git
a/cds/intrusive/lazy_list_rcu.h
b/cds/intrusive/lazy_list_rcu.h
index 81b5512e596c9155fd0cf17ab49a7cc552fa7748..b3e0499736b06ba161e1663a5ac3af2eee898ff7 100644
(file)
--- a/
cds/intrusive/lazy_list_rcu.h
+++ b/
cds/intrusive/lazy_list_rcu.h
@@
-231,7
+231,7
@@
namespace cds { namespace intrusive {
public:
/// pointer to extracted node
public:
/// pointer to extracted node
- using exempt_ptr = cds::urcu::exempt_ptr< gc, value_type, value_type, clear_and_dispose, void >;
+ using exempt_ptr = cds::urcu::exempt_ptr< gc, value_type, value_type, clear_and_dispose, void >;
protected:
//@cond
protected:
//@cond
diff --git
a/cds/intrusive/skip_list_nogc.h
b/cds/intrusive/skip_list_nogc.h
index 6f6abf4c53c987bbc9065cb4b8b098f8a96820d5..6ff153c2acb5397d1f1cb52a6c6d770e5930d3f9 100644
(file)
--- a/
cds/intrusive/skip_list_nogc.h
+++ b/
cds/intrusive/skip_list_nogc.h
@@
-213,7
+213,7
@@
namespace cds { namespace intrusive {
- \p T - type to be stored in the set. The type must be based on \p skip_list::node (for \p skip_list::base_hook)
or it must have a member of type \p skip_list::node (for \p skip_list::member_hook).
- \p Traits - type traits, default is \p skip_list::traits.
- \p T - type to be stored in the set. The type must be based on \p skip_list::node (for \p skip_list::base_hook)
or it must have a member of type \p skip_list::node (for \p skip_list::member_hook).
- \p Traits - type traits, default is \p skip_list::traits.
- It is possible to declare option-based list with \p cds::intrusive::skip_list::make_traits metafunction
+ It is possible to declare option-based list with \p cds::intrusive::skip_list::make_traits metafunction
istead of \p Traits template argument.
<b>Iterators</b>
istead of \p Traits template argument.
<b>Iterators</b>
diff --git
a/cds/intrusive/skip_list_rcu.h
b/cds/intrusive/skip_list_rcu.h
index c63e085ea0a891f967dfb278e0b031e9a4b46612..40a321fd5e972dc5b16f1422c9037cfdaa1f5366 100644
(file)
--- a/
cds/intrusive/skip_list_rcu.h
+++ b/
cds/intrusive/skip_list_rcu.h
@@
-318,7
+318,7
@@
namespace cds { namespace intrusive {
- \p T - type to be stored in the list. The type must be based on \p skip_list::node (for \p skip_list::base_hook)
or it must have a member of type \p skip_list::node (for \p skip_list::member_hook).
- \p Traits - set traits, default is \p skip_list::traits
- \p T - type to be stored in the list. The type must be based on \p skip_list::node (for \p skip_list::base_hook)
or it must have a member of type \p skip_list::node (for \p skip_list::member_hook).
- \p Traits - set traits, default is \p skip_list::traits
- It is possible to declare option-based list with \p cds::intrusive::skip_list::make_traits metafunction
+ It is possible to declare option-based list with \p cds::intrusive::skip_list::make_traits metafunction
instead of \p Traits template argument.
@note Before including <tt><cds/intrusive/skip_list_rcu.h></tt> you should include appropriate RCU header file,
instead of \p Traits template argument.
@note Before including <tt><cds/intrusive/skip_list_rcu.h></tt> you should include appropriate RCU header file,
diff --git
a/cds/intrusive/striped_set.h
b/cds/intrusive/striped_set.h
index a5f7cd06698f6225b0d5d7fb2e2602e642b2b6a8..e0182deffffa95c6ac58961c2f97f2ea70c9cfcf 100644
(file)
--- a/
cds/intrusive/striped_set.h
+++ b/
cds/intrusive/striped_set.h
@@
-34,10
+34,10
@@
namespace cds { namespace intrusive {
Template arguments:
- \p Container - the container class that is used as bucket table entry. The \p Container class should support
an uniform interface described below.
Template arguments:
- \p Container - the container class that is used as bucket table entry. The \p Container class should support
an uniform interface described below.
- - \p Options - options
+ - \p Options - options
The \p %StripedSet class does not exactly dictate the type of container that should be used as a \p Container bucket.
The \p %StripedSet class does not exactly dictate the type of container that should be used as a \p Container bucket.
- Instead, the class supports different intrusive container type for the bucket, for exampe,
+ Instead, the class supports different intrusive container type for the bucket, for exampe,
\p boost::intrusive::list, \p boost::intrusive::set and others.
Remember that \p %StripedSet class algorithm ensures sequential blocking access to its bucket through the mutex type you specify
\p boost::intrusive::list, \p boost::intrusive::set and others.
Remember that \p %StripedSet class algorithm ensures sequential blocking access to its bucket through the mutex type you specify
@@
-47,7
+47,7
@@
namespace cds { namespace intrusive {
- \p opt::mutex_policy - concurrent access policy.
Available policies: \p striped_set::striping, \p striped_set::refinable.
Default is \p %striped_set::striping.
- \p opt::mutex_policy - concurrent access policy.
Available policies: \p striped_set::striping, \p striped_set::refinable.
Default is \p %striped_set::striping.
- - \p cds::opt::hash - hash functor. Default option value see <tt>opt::v::hash_selector <opt::none></tt>
+ - \p cds::opt::hash - hash functor. Default option value see <tt>opt::v::hash_selector <opt::none></tt>
which selects default hash functor for your compiler.
- \p cds::opt::compare - key comparison functor. No default functor is provided.
If the option is not specified, the \p opt::less is used.
which selects default hash functor for your compiler.
- \p cds::opt::compare - key comparison functor. No default functor is provided.
If the option is not specified, the \p opt::less is used.
diff --git
a/cds/intrusive/striped_set/boost_unordered_set.h
b/cds/intrusive/striped_set/boost_unordered_set.h
index ea833054337cf73070cd0133ed3af2c7ad02bc57..9ec936990a28e541a535fdf6ecf0ab81ca78ebc6 100644
(file)
--- a/
cds/intrusive/striped_set/boost_unordered_set.h
+++ b/
cds/intrusive/striped_set/boost_unordered_set.h
@@
-178,9
+178,9
@@
namespace cds { namespace intrusive { namespace striped_set {
} // namespace details
#if CDS_COMPILER == CDS_COMPILER_INTEL && CDS_COMPILER_VERSION <= 1500
} // namespace details
#if CDS_COMPILER == CDS_COMPILER_INTEL && CDS_COMPILER_VERSION <= 1500
- template <typename T,
- typename O1, typename O2, typename O3, typename O4, typename O5,
- typename O6, typename O7, typename O8, typename O9, typename O10,
+ template <typename T,
+ typename O1, typename O2, typename O3, typename O4, typename O5,
+ typename O6, typename O7, typename O8, typename O9, typename O10,
typename... Options
>
class adapt < boost::intrusive::unordered_set< T, O1, O2, O3, O4, O5, O6, O7, O8, O9, O10 >, Options... >
typename... Options
>
class adapt < boost::intrusive::unordered_set< T, O1, O2, O3, O4, O5, O6, O7, O8, O9, O10 >, Options... >
diff --git
a/cds/opt/options.h
b/cds/opt/options.h
index 55d05dc4cb12194cde49a2c3ef188a5f81c99ae1..0c2f7e9541c4d32a989ffd8a0880cd215ba6a42b 100644
(file)
--- a/
cds/opt/options.h
+++ b/
cds/opt/options.h
@@
-496,8
+496,8
@@
namespace opt {
enum { padding = Padding & ~padding_flags };
public:
enum { padding = Padding & ~padding_flags };
public:
- static CDS_CONSTEXPR const size_t c_nPadding =
- static_cast<unsigned int>(padding) == static_cast<unsigned int>(cache_line_padding) ? cds::c_nCacheLineSize :
+ static CDS_CONSTEXPR const size_t c_nPadding =
+ static_cast<unsigned int>(padding) == static_cast<unsigned int>(cache_line_padding) ? cds::c_nCacheLineSize :
static_cast<unsigned int>(padding) == static_cast<unsigned int>(no_special_padding) ? 0 : padding;
static_assert( (c_nPadding & (c_nPadding - 1)) == 0, "Padding must be a power-of-two number" );
static_cast<unsigned int>(padding) == static_cast<unsigned int>(no_special_padding) ? 0 : padding;
static_assert( (c_nPadding & (c_nPadding - 1)) == 0, "Padding must be a power-of-two number" );
@@
-506,7
+506,7
@@
namespace opt {
c_nPadding,
c_nPadding == 0,
sizeof( T ) < c_nPadding ? padding_datasize_less : sizeof( T ) == c_nPadding ? padding_datasize_equal : padding_datasize_greater,
c_nPadding,
c_nPadding == 0,
sizeof( T ) < c_nPadding ? padding_datasize_less : sizeof( T ) == c_nPadding ? padding_datasize_equal : padding_datasize_greater,
- (Padding & padding_tiny_data_only) != 0
+ (Padding & padding_tiny_data_only) != 0
>::type type;
};
>::type type;
};
diff --git
a/cds/urcu/exempt_ptr.h
b/cds/urcu/exempt_ptr.h
index 1b052691aa7b55e4ca40bf4df823cb1155e5a604..fa005ec8764f163af8b16ebf4bff31056fff086b 100644
(file)
--- a/
cds/urcu/exempt_ptr.h
+++ b/
cds/urcu/exempt_ptr.h
@@
-45,7
+45,7
@@
namespace cds { namespace urcu {
- \p NodeType - container's node type
- \p ValueType - value type stored in container's node. For intrusive containers it is the same as \p NodeType
- \p Disposer - a disposer functor
- \p NodeType - container's node type
- \p ValueType - value type stored in container's node. For intrusive containers it is the same as \p NodeType
- \p Disposer - a disposer functor
- - \p Cast - a functor for casting from \p NodeType to \p ValueType. For intrusive containers
+ - \p Cast - a functor for casting from \p NodeType to \p ValueType. For intrusive containers
the casting is usually disabled, i.e. \p Cast is \p void.
*/
template <
the casting is usually disabled, i.e. \p Cast is \p void.
*/
template <
diff --git
a/change.log
b/change.log
index d54711b6a095144fa3d6bef3a2017255205e6158..c383941538a091a63d10ada23463d3fe6876358d 100644
(file)
--- a/
change.log
+++ b/
change.log
@@
-23,6
+23,7
@@
- Changed: guarded_ptr and exempt_ptr have move semantics now. The container's extract() and get()
member functions return the objects of that type.
- Changed: improved cds::gc::HP and cds::gc::DHP internal implementation
- Changed: guarded_ptr and exempt_ptr have move semantics now. The container's extract() and get()
member functions return the objects of that type.
- Changed: improved cds::gc::HP and cds::gc::DHP internal implementation
+ - Changed: map member function insert_key() has been renamed to insert_with()
1.6.0 23.09.2014
General release
1.6.0 23.09.2014
General release
diff --git
a/tests/test-hdr/map/hdr_skiplist_map.h
b/tests/test-hdr/map/hdr_skiplist_map.h
index e21aaaa333b7222b5925871b2a9d378527625cf1..ef474f7506b8ae0f1615573f5ad9c110565b28aa 100644
(file)
--- a/
tests/test-hdr/map/hdr_skiplist_map.h
+++ b/
tests/test-hdr/map/hdr_skiplist_map.h
@@
-180,7
+180,7
@@
namespace map {
CPPUNIT_CHECK( gp->first == nKey );
CPPUNIT_CHECK( gp->second.m_val == nKey * 2 );
gp.release();
CPPUNIT_CHECK( gp->first == nKey );
CPPUNIT_CHECK( gp->second.m_val == nKey * 2 );
gp.release();
-
+
gp = m.extract_with( wrapped_item( nKey ), wrapped_less());
CPPUNIT_ASSERT( gp );
CPPUNIT_ASSERT( !gp.empty());
gp = m.extract_with( wrapped_item( nKey ), wrapped_less());
CPPUNIT_ASSERT( gp );
CPPUNIT_ASSERT( !gp.empty());
diff --git
a/tests/unit/map2/map_delodd.cpp
b/tests/unit/map2/map_delodd.cpp
index f1ecb3f4d67aa263cb3b14db2c0d07792c4cc1e7..655bc1f7d158f43ff23c8136374badf93083bb04 100644
(file)
--- a/
tests/unit/map2/map_delodd.cpp
+++ b/
tests/unit/map2/map_delodd.cpp
@@
-106,7
+106,7
@@
namespace boost {
{
return std::hash<size_t>()( k.nKey );
}
{
return std::hash<size_t>()( k.nKey );
}
-
+
template <>
struct hash<map2::key_thread>
{
template <>
struct hash<map2::key_thread>
{