<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>_concurrent_unordered_internal.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li id="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
  </ul></div>
<h1>_concurrent_unordered_internal.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment">    Copyright 2005-2010 Intel Corporation.  All Rights Reserved.</span>
<a name="l00003"></a>00003 <span class="comment"></span>
<a name="l00004"></a>00004 <span class="comment">    The source code contained or described herein and all documents related</span>
<a name="l00005"></a>00005 <span class="comment">    to the source code ("Material") are owned by Intel Corporation or its</span>
<a name="l00006"></a>00006 <span class="comment">    suppliers or licensors.  Title to the Material remains with Intel</span>
<a name="l00007"></a>00007 <span class="comment">    Corporation or its suppliers and licensors.  The Material is protected</span>
<a name="l00008"></a>00008 <span class="comment">    by worldwide copyright laws and treaty provisions.  No part of the</span>
<a name="l00009"></a>00009 <span class="comment">    Material may be used, copied, reproduced, modified, published, uploaded,</span>
<a name="l00010"></a>00010 <span class="comment">    posted, transmitted, distributed, or disclosed in any way without</span>
<a name="l00011"></a>00011 <span class="comment">    Intel's prior express written permission.</span>
<a name="l00012"></a>00012 <span class="comment"></span>
<a name="l00013"></a>00013 <span class="comment">    No license under any patent, copyright, trade secret or other</span>
<a name="l00014"></a>00014 <span class="comment">    intellectual property right is granted to or conferred upon you by</span>
<a name="l00015"></a>00015 <span class="comment">    disclosure or delivery of the Materials, either expressly, by</span>
<a name="l00016"></a>00016 <span class="comment">    implication, inducement, estoppel or otherwise.  Any license under such</span>
<a name="l00017"></a>00017 <span class="comment">    intellectual property rights must be express and approved by Intel in</span>
<a name="l00018"></a>00018 <span class="comment">    writing.</span>
<a name="l00019"></a>00019 <span class="comment">*/</span>
<a name="l00020"></a>00020 
<a name="l00021"></a>00021 <span class="comment">/* Container implementations in this header are based on PPL implementations </span>
<a name="l00022"></a>00022 <span class="comment">   provided by Microsoft. */</span>
<a name="l00023"></a>00023 
<a name="l00024"></a>00024 <span class="preprocessor">#ifndef __TBB_concurrent_unordered_internal_H</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#define __TBB_concurrent_unordered_internal_H</span>
<a name="l00026"></a>00026 <span class="preprocessor"></span>
<a name="l00027"></a>00027 <span class="preprocessor">#include "tbb_stddef.h"</span>
<a name="l00028"></a>00028 
<a name="l00029"></a>00029 <span class="preprocessor">#if !TBB_USE_EXCEPTIONS &amp;&amp; _MSC_VER</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span>    <span class="comment">// Suppress "C++ exception handler used, but unwind semantics are not enabled" warning in STL headers</span>
<a name="l00031"></a>00031 <span class="preprocessor">    #pragma warning (push)</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">    #pragma warning (disable: 4530)</span>
<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;iterator&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;utility&gt;</span>      <span class="comment">// Need std::pair</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;functional&gt;</span>
<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;string&gt;</span>       <span class="comment">// For tbb_hasher</span>
<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;cstring&gt;</span>      <span class="comment">// Need std::memset</span>
<a name="l00040"></a>00040 
<a name="l00041"></a>00041 <span class="preprocessor">#if !TBB_USE_EXCEPTIONS &amp;&amp; _MSC_VER</span>
<a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor">    #pragma warning (pop)</span>
<a name="l00043"></a>00043 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00044"></a>00044 <span class="preprocessor"></span>
<a name="l00045"></a>00045 <span class="preprocessor">#include "tbb_machine.h"</span>
<a name="l00046"></a>00046 <span class="preprocessor">#include "tbb_exception.h"</span>
<a name="l00047"></a>00047 <span class="preprocessor">#include "tbb_allocator.h"</span>
<a name="l00048"></a>00048 
<a name="l00049"></a>00049 <span class="keyword">namespace </span>tbb {
<a name="l00050"></a>00050 <span class="keyword">namespace </span>interface5 {
<a name="l00052"></a>00052 <span class="keyword">namespace </span>internal {
<a name="l00053"></a>00053 
<a name="l00054"></a>00054 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> Allocator&gt;
<a name="l00055"></a>00055 <span class="keyword">class </span>split_ordered_list;
<a name="l00056"></a>00056 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Traits&gt;
<a name="l00057"></a>00057 <span class="keyword">class </span>concurrent_unordered_base;
<a name="l00058"></a>00058 
<a name="l00059"></a>00059 <span class="comment">// Forward list iterators (without skipping dummy elements)</span>
<a name="l00060"></a>00060 <span class="keyword">template</span>&lt;<span class="keyword">class</span> Solist, <span class="keyword">typename</span> Value&gt;
<a name="l00061"></a>00061 <span class="keyword">class </span>flist_iterator : <span class="keyword">public</span> std::iterator&lt;std::forward_iterator_tag, Value&gt;
<a name="l00062"></a>00062 {
<a name="l00063"></a>00063     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> Allocator&gt;
<a name="l00064"></a>00064     <span class="keyword">friend</span> <span class="keyword">class </span>split_ordered_list;
<a name="l00065"></a>00065     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Traits&gt;
<a name="l00066"></a>00066     <span class="keyword">friend</span> <span class="keyword">class </span>concurrent_unordered_base;
<a name="l00067"></a>00067     <span class="keyword">template</span>&lt;<span class="keyword">class</span> M, <span class="keyword">typename</span> V&gt;
<a name="l00068"></a>00068     <span class="keyword">friend</span> <span class="keyword">class </span>flist_iterator;
<a name="l00069"></a>00069 
<a name="l00070"></a>00070     <span class="keyword">typedef</span> <span class="keyword">typename</span> Solist::nodeptr_t nodeptr_t;
<a name="l00071"></a>00071 <span class="keyword">public</span>:
<a name="l00072"></a>00072     <span class="keyword">typedef</span> <span class="keyword">typename</span> Solist::value_type value_type;
<a name="l00073"></a>00073     <span class="keyword">typedef</span> <span class="keyword">typename</span> Solist::difference_type difference_type;
<a name="l00074"></a>00074     <span class="keyword">typedef</span> <span class="keyword">typename</span> Solist::pointer pointer;
<a name="l00075"></a>00075     <span class="keyword">typedef</span> <span class="keyword">typename</span> Solist::reference reference;
<a name="l00076"></a>00076 
<a name="l00077"></a>00077     flist_iterator() : my_node_ptr(0) {}
<a name="l00078"></a>00078     flist_iterator( <span class="keyword">const</span> flist_iterator&lt;Solist, typename Solist::value_type&gt; &amp;other )
<a name="l00079"></a>00079         : my_node_ptr(other.my_node_ptr) {}
<a name="l00080"></a>00080 
<a name="l00081"></a>00081     reference operator*()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> my_node_ptr-&gt;my_element; }
<a name="l00082"></a>00082     pointer operator-&gt;()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> &amp;**<span class="keyword">this</span>; }
<a name="l00083"></a>00083 
<a name="l00084"></a>00084     flist_iterator&amp; operator++() {
<a name="l00085"></a>00085         my_node_ptr = my_node_ptr-&gt;my_next;
<a name="l00086"></a>00086         <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00087"></a>00087     }
<a name="l00088"></a>00088 
<a name="l00089"></a>00089     flist_iterator operator++(<span class="keywordtype">int</span>) {
<a name="l00090"></a>00090         flist_iterator tmp = *<span class="keyword">this</span>;
<a name="l00091"></a>00091         ++*<span class="keyword">this</span>;
<a name="l00092"></a>00092         <span class="keywordflow">return</span> tmp;
<a name="l00093"></a>00093     }
<a name="l00094"></a>00094 
<a name="l00095"></a>00095 <span class="keyword">protected</span>:
<a name="l00096"></a>00096     flist_iterator(nodeptr_t pnode) : my_node_ptr(pnode) {}
<a name="l00097"></a>00097     nodeptr_t get_node_ptr()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> my_node_ptr; }
<a name="l00098"></a>00098 
<a name="l00099"></a>00099     nodeptr_t my_node_ptr;
<a name="l00100"></a>00100 
<a name="l00101"></a>00101     <span class="keyword">template</span>&lt;<span class="keyword">typename</span> M, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;
<a name="l00102"></a>00102     <span class="keyword">friend</span> <span class="keywordtype">bool</span> operator==( <span class="keyword">const</span> flist_iterator&lt;M,T&gt; &amp;i, <span class="keyword">const</span> flist_iterator&lt;M,U&gt; &amp;j );
<a name="l00103"></a>00103     <span class="keyword">template</span>&lt;<span class="keyword">typename</span> M, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;
<a name="l00104"></a>00104     <span class="keyword">friend</span> <span class="keywordtype">bool</span> operator!=( <span class="keyword">const</span> flist_iterator&lt;M,T&gt;&amp; i, <span class="keyword">const</span> flist_iterator&lt;M,U&gt;&amp; j );
<a name="l00105"></a>00105 };
<a name="l00106"></a>00106 
<a name="l00107"></a>00107 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Solist, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;
<a name="l00108"></a>00108 <span class="keywordtype">bool</span> operator==( <span class="keyword">const</span> flist_iterator&lt;Solist,T&gt; &amp;i, <span class="keyword">const</span> flist_iterator&lt;Solist,U&gt; &amp;j ) {
<a name="l00109"></a>00109     <span class="keywordflow">return</span> i.my_node_ptr == j.my_node_ptr;
<a name="l00110"></a>00110 }
<a name="l00111"></a>00111 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Solist, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;
<a name="l00112"></a>00112 <span class="keywordtype">bool</span> operator!=( <span class="keyword">const</span> flist_iterator&lt;Solist,T&gt;&amp; i, <span class="keyword">const</span> flist_iterator&lt;Solist,U&gt;&amp; j ) {
<a name="l00113"></a>00113     <span class="keywordflow">return</span> i.my_node_ptr != j.my_node_ptr;
<a name="l00114"></a>00114 }
<a name="l00115"></a>00115 
<a name="l00116"></a>00116 <span class="comment">// Split-order list iterators, needed to skip dummy elements</span>
<a name="l00117"></a>00117 <span class="keyword">template</span>&lt;<span class="keyword">class</span> Solist, <span class="keyword">typename</span> Value&gt;
<a name="l00118"></a>00118 <span class="keyword">class </span>solist_iterator : <span class="keyword">public</span> flist_iterator&lt;Solist, Value&gt;
<a name="l00119"></a>00119 {
<a name="l00120"></a>00120     <span class="keyword">typedef</span> flist_iterator&lt;Solist, Value&gt; base_type;
<a name="l00121"></a>00121     <span class="keyword">typedef</span> <span class="keyword">typename</span> Solist::nodeptr_t nodeptr_t;
<a name="l00122"></a>00122     <span class="keyword">using</span> base_type::get_node_ptr;
<a name="l00123"></a>00123     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> Allocator&gt;
<a name="l00124"></a>00124     <span class="keyword">friend</span> <span class="keyword">class </span>split_ordered_list;
<a name="l00125"></a>00125     <span class="keyword">template</span>&lt;<span class="keyword">class</span> M, <span class="keyword">typename</span> V&gt;
<a name="l00126"></a>00126     <span class="keyword">friend</span> <span class="keyword">class </span>solist_iterator;
<a name="l00127"></a>00127     <span class="keyword">template</span>&lt;<span class="keyword">typename</span> M, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;
<a name="l00128"></a>00128     <span class="keyword">friend</span> <span class="keywordtype">bool</span> operator==( <span class="keyword">const</span> solist_iterator&lt;M,T&gt; &amp;i, <span class="keyword">const</span> solist_iterator&lt;M,U&gt; &amp;j );
<a name="l00129"></a>00129     <span class="keyword">template</span>&lt;<span class="keyword">typename</span> M, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;
<a name="l00130"></a>00130     <span class="keyword">friend</span> <span class="keywordtype">bool</span> operator!=( <span class="keyword">const</span> solist_iterator&lt;M,T&gt;&amp; i, <span class="keyword">const</span> solist_iterator&lt;M,U&gt;&amp; j );
<a name="l00131"></a>00131 
<a name="l00132"></a>00132     <span class="keyword">const</span> Solist *my_list_ptr;
<a name="l00133"></a>00133     solist_iterator(nodeptr_t pnode, <span class="keyword">const</span> Solist *plist) : base_type(pnode), my_list_ptr(plist) {}
<a name="l00134"></a>00134 
<a name="l00135"></a>00135 <span class="keyword">public</span>:
<a name="l00136"></a>00136     <span class="keyword">typedef</span> <span class="keyword">typename</span> Solist::value_type value_type;
<a name="l00137"></a>00137     <span class="keyword">typedef</span> <span class="keyword">typename</span> Solist::difference_type difference_type;
<a name="l00138"></a>00138     <span class="keyword">typedef</span> <span class="keyword">typename</span> Solist::pointer pointer;
<a name="l00139"></a>00139     <span class="keyword">typedef</span> <span class="keyword">typename</span> Solist::reference reference;
<a name="l00140"></a>00140 
<a name="l00141"></a>00141     solist_iterator() {}
<a name="l00142"></a>00142     solist_iterator(<span class="keyword">const</span> solist_iterator&lt;Solist, typename Solist::value_type&gt; &amp;other )
<a name="l00143"></a>00143         : base_type(other), my_list_ptr(other.my_list_ptr) {}
<a name="l00144"></a>00144 
<a name="l00145"></a>00145     reference operator*()<span class="keyword"> const </span>{
<a name="l00146"></a>00146         <span class="keywordflow">return</span> this-&gt;base_type::operator*();
<a name="l00147"></a>00147     }
<a name="l00148"></a>00148 
<a name="l00149"></a>00149     pointer operator-&gt;()<span class="keyword"> const </span>{
<a name="l00150"></a>00150         <span class="keywordflow">return</span> (&amp;**<span class="keyword">this</span>);
<a name="l00151"></a>00151     }
<a name="l00152"></a>00152 
<a name="l00153"></a>00153     solist_iterator&amp; operator++() {
<a name="l00154"></a>00154         <span class="keywordflow">do</span> ++(*(base_type *)<span class="keyword">this</span>);
<a name="l00155"></a>00155         <span class="keywordflow">while</span> (get_node_ptr() != NULL &amp;&amp; get_node_ptr()-&gt;is_dummy());
<a name="l00156"></a>00156 
<a name="l00157"></a>00157         <span class="keywordflow">return</span> (*<span class="keyword">this</span>);
<a name="l00158"></a>00158     }
<a name="l00159"></a>00159 
<a name="l00160"></a>00160     solist_iterator operator++(<span class="keywordtype">int</span>) {
<a name="l00161"></a>00161         solist_iterator tmp = *<span class="keyword">this</span>;
<a name="l00162"></a>00162         <span class="keywordflow">do</span> ++*<span class="keyword">this</span>;
<a name="l00163"></a>00163         <span class="keywordflow">while</span> (get_node_ptr() != NULL &amp;&amp; get_node_ptr()-&gt;is_dummy());
<a name="l00164"></a>00164 
<a name="l00165"></a>00165         <span class="keywordflow">return</span> (tmp);
<a name="l00166"></a>00166     }
<a name="l00167"></a>00167 };
<a name="l00168"></a>00168 
<a name="l00169"></a>00169 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Solist, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;
<a name="l00170"></a>00170 <span class="keywordtype">bool</span> operator==( <span class="keyword">const</span> solist_iterator&lt;Solist,T&gt; &amp;i, <span class="keyword">const</span> solist_iterator&lt;Solist,U&gt; &amp;j ) {
<a name="l00171"></a>00171     <span class="keywordflow">return</span> i.my_node_ptr == j.my_node_ptr &amp;&amp; i.my_list_ptr == j.my_list_ptr;
<a name="l00172"></a>00172 }
<a name="l00173"></a>00173 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Solist, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;
<a name="l00174"></a>00174 <span class="keywordtype">bool</span> operator!=( <span class="keyword">const</span> solist_iterator&lt;Solist,T&gt;&amp; i, <span class="keyword">const</span> solist_iterator&lt;Solist,U&gt;&amp; j ) {
<a name="l00175"></a>00175     <span class="keywordflow">return</span> i.my_node_ptr != j.my_node_ptr || i.my_list_ptr != j.my_list_ptr;
<a name="l00176"></a>00176 }
<a name="l00177"></a>00177 
<a name="l00178"></a>00178 <span class="comment">// Forward type and class definitions</span>
<a name="l00179"></a>00179 <span class="keyword">typedef</span> size_t sokey_t;
<a name="l00180"></a>00180 
<a name="l00181"></a>00181 <span class="comment">// Forward list in which elements are sorted in a split-order</span>
<a name="l00182"></a>00182 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> Allocator&gt;
<a name="l00183"></a>00183 <span class="keyword">class </span>split_ordered_list
<a name="l00184"></a>00184 {
<a name="l00185"></a>00185 <span class="keyword">public</span>:
<a name="l00186"></a>00186     <span class="keyword">typedef</span> split_ordered_list&lt;T, Allocator&gt; self_type;
<a name="l00187"></a>00187     <span class="keyword">typedef</span> <span class="keyword">typename</span> Allocator::template rebind&lt;T&gt;::other allocator_type;
<a name="l00188"></a>00188     <span class="keyword">struct </span>node;
<a name="l00189"></a>00189     <span class="keyword">typedef</span> node *nodeptr_t;
<a name="l00190"></a>00190 
<a name="l00191"></a>00191     <span class="keyword">typedef</span> <span class="keyword">typename</span> allocator_type::size_type size_type;
<a name="l00192"></a>00192     <span class="keyword">typedef</span> <span class="keyword">typename</span> allocator_type::difference_type difference_type;
<a name="l00193"></a>00193     <span class="keyword">typedef</span> <span class="keyword">typename</span> allocator_type::pointer pointer;
<a name="l00194"></a>00194     <span class="keyword">typedef</span> <span class="keyword">typename</span> allocator_type::const_pointer const_pointer;
<a name="l00195"></a>00195     <span class="keyword">typedef</span> <span class="keyword">typename</span> allocator_type::reference reference;
<a name="l00196"></a>00196     <span class="keyword">typedef</span> <span class="keyword">typename</span> allocator_type::const_reference const_reference;
<a name="l00197"></a>00197     <span class="keyword">typedef</span> <span class="keyword">typename</span> allocator_type::value_type value_type;
<a name="l00198"></a>00198 
<a name="l00199"></a>00199     <span class="keyword">typedef</span> solist_iterator&lt;self_type, const value_type&gt; const_iterator;
<a name="l00200"></a>00200     <span class="keyword">typedef</span> solist_iterator&lt;self_type, value_type&gt; iterator;
<a name="l00201"></a>00201     <span class="keyword">typedef</span> flist_iterator&lt;self_type, const value_type&gt; raw_const_iterator;
<a name="l00202"></a>00202     <span class="keyword">typedef</span> flist_iterator&lt;self_type, value_type&gt; raw_iterator;
<a name="l00203"></a>00203 
<a name="l00204"></a>00204     <span class="comment">// Node that holds the element in a split-ordered list</span>
<a name="l00205"></a>00205     <span class="keyword">struct </span>node : tbb::internal::no_assign
<a name="l00206"></a>00206     {
<a name="l00207"></a>00207         <span class="comment">// Initialize the node with the given order key</span>
<a name="l00208"></a>00208         <span class="keywordtype">void</span> init(sokey_t order_key) {
<a name="l00209"></a>00209             my_order_key = order_key;
<a name="l00210"></a>00210             my_next = NULL;
<a name="l00211"></a>00211         }
<a name="l00212"></a>00212 
<a name="l00213"></a>00213         <span class="comment">// Return the order key (needed for hashing)</span>
<a name="l00214"></a>00214         sokey_t get_order_key()<span class="keyword"> const </span>{ <span class="comment">// TODO: remove</span>
<a name="l00215"></a>00215             <span class="keywordflow">return</span> my_order_key;
<a name="l00216"></a>00216         }
<a name="l00217"></a>00217 
<a name="l00218"></a>00218         <span class="comment">// Inserts the new element in the list in an atomic fashion</span>
<a name="l00219"></a>00219         nodeptr_t atomic_set_next(nodeptr_t new_node, nodeptr_t current_node)
<a name="l00220"></a>00220         {
<a name="l00221"></a>00221             <span class="comment">// Try to change the next pointer on the current element to a new element, only if it still points to the cached next</span>
<a name="l00222"></a>00222             nodeptr_t exchange_node = (nodeptr_t) __TBB_CompareAndSwapW((<span class="keywordtype">void</span> *) &amp;my_next, (uintptr_t)new_node, (uintptr_t)current_node);
<a name="l00223"></a>00223 
<a name="l00224"></a>00224             <span class="keywordflow">if</span> (exchange_node == current_node) <span class="comment">// TODO: why this branch?</span>
<a name="l00225"></a>00225             {
<a name="l00226"></a>00226                 <span class="comment">// Operation succeeded, return the new node</span>
<a name="l00227"></a>00227                 <span class="keywordflow">return</span> new_node;
<a name="l00228"></a>00228             }
<a name="l00229"></a>00229             <span class="keywordflow">else</span>
<a name="l00230"></a>00230             {
<a name="l00231"></a>00231                 <span class="comment">// Operation failed, return the "interfering" node</span>
<a name="l00232"></a>00232                 <span class="keywordflow">return</span> exchange_node;
<a name="l00233"></a>00233             }
<a name="l00234"></a>00234         }
<a name="l00235"></a>00235 
<a name="l00236"></a>00236         <span class="comment">// Checks if this element in the list is a dummy, order enforcing node. Dummy nodes are used by buckets</span>
<a name="l00237"></a>00237         <span class="comment">// in the hash table to quickly index into the right subsection of the split-ordered list.</span>
<a name="l00238"></a>00238         <span class="keywordtype">bool</span> is_dummy()<span class="keyword"> const </span>{
<a name="l00239"></a>00239             <span class="keywordflow">return</span> (my_order_key &amp; 0x1) == 0;
<a name="l00240"></a>00240         }
<a name="l00241"></a>00241 
<a name="l00242"></a>00242 
<a name="l00243"></a>00243         nodeptr_t  my_next;      <span class="comment">// Next element in the list</span>
<a name="l00244"></a>00244         value_type my_element;   <span class="comment">// Element storage</span>
<a name="l00245"></a>00245         sokey_t    my_order_key; <span class="comment">// Order key for this element</span>
<a name="l00246"></a>00246     };
<a name="l00247"></a>00247 
<a name="l00248"></a>00248     <span class="comment">// Allocate a new node with the given order key and value</span>
<a name="l00249"></a>00249     nodeptr_t create_node(sokey_t order_key, <span class="keyword">const</span> T &amp;value) {
<a name="l00250"></a>00250         nodeptr_t pnode = my_node_allocator.allocate(1);
<a name="l00251"></a>00251 
<a name="l00252"></a>00252         __TBB_TRY {
<a name="l00253"></a>00253             <span class="keyword">new</span>(static_cast&lt;void*&gt;(&amp;pnode-&gt;my_element)) T(value);
<a name="l00254"></a>00254             pnode-&gt;init(order_key);
<a name="l00255"></a>00255         } __TBB_CATCH(...) {
<a name="l00256"></a>00256             my_node_allocator.deallocate(pnode, 1);
<a name="l00257"></a>00257             __TBB_RETHROW();
<a name="l00258"></a>00258         }
<a name="l00259"></a>00259 
<a name="l00260"></a>00260         <span class="keywordflow">return</span> (pnode);
<a name="l00261"></a>00261     }
<a name="l00262"></a>00262 
<a name="l00263"></a>00263     <span class="comment">// Allocate a new node with the given order key; used to allocate dummy nodes</span>
<a name="l00264"></a>00264     nodeptr_t create_node(sokey_t order_key) {
<a name="l00265"></a>00265         nodeptr_t pnode = my_node_allocator.allocate(1);
<a name="l00266"></a>00266 
<a name="l00267"></a>00267         __TBB_TRY {
<a name="l00268"></a>00268             <span class="keyword">new</span>(static_cast&lt;void*&gt;(&amp;pnode-&gt;my_element)) T();
<a name="l00269"></a>00269             pnode-&gt;init(order_key);
<a name="l00270"></a>00270         } __TBB_CATCH(...) {
<a name="l00271"></a>00271             my_node_allocator.deallocate(pnode, 1);
<a name="l00272"></a>00272             __TBB_RETHROW();
<a name="l00273"></a>00273         }
<a name="l00274"></a>00274 
<a name="l00275"></a>00275         <span class="keywordflow">return</span> (pnode);
<a name="l00276"></a>00276     }
<a name="l00277"></a>00277 
<a name="l00278"></a>00278    split_ordered_list(allocator_type a = allocator_type())
<a name="l00279"></a>00279        : my_node_allocator(a), my_element_count(0)
<a name="l00280"></a>00280     {
<a name="l00281"></a>00281         <span class="comment">// Immediately allocate a dummy node with order key of 0. This node</span>
<a name="l00282"></a>00282         <span class="comment">// will always be the head of the list.</span>
<a name="l00283"></a>00283         my_head = create_node(0);
<a name="l00284"></a>00284     }
<a name="l00285"></a>00285 
<a name="l00286"></a>00286     ~split_ordered_list()
<a name="l00287"></a>00287     {
<a name="l00288"></a>00288         <span class="comment">// Clear the list</span>
<a name="l00289"></a>00289         clear();
<a name="l00290"></a>00290 
<a name="l00291"></a>00291         <span class="comment">// Remove the head element which is not cleared by clear()</span>
<a name="l00292"></a>00292         nodeptr_t pnode = my_head;
<a name="l00293"></a>00293         my_head = NULL;
<a name="l00294"></a>00294 
<a name="l00295"></a>00295         __TBB_ASSERT(pnode != NULL &amp;&amp; pnode-&gt;my_next == NULL, <span class="stringliteral">"Invalid head list node"</span>);
<a name="l00296"></a>00296 
<a name="l00297"></a>00297         destroy_node(pnode);
<a name="l00298"></a>00298     }
<a name="l00299"></a>00299 
<a name="l00300"></a>00300     <span class="comment">// Common forward list functions</span>
<a name="l00301"></a>00301 
<a name="l00302"></a>00302     allocator_type get_allocator()<span class="keyword"> const </span>{
<a name="l00303"></a>00303         <span class="keywordflow">return</span> (my_node_allocator);
<a name="l00304"></a>00304     }
<a name="l00305"></a>00305 
<a name="l00306"></a>00306     <span class="keywordtype">void</span> clear() {
<a name="l00307"></a>00307         nodeptr_t pnext;
<a name="l00308"></a>00308         nodeptr_t pnode = my_head;
<a name="l00309"></a>00309 
<a name="l00310"></a>00310         __TBB_ASSERT(my_head != NULL, <span class="stringliteral">"Invalid head list node"</span>);
<a name="l00311"></a>00311         pnext = pnode-&gt;my_next;
<a name="l00312"></a>00312         pnode-&gt;my_next = NULL;
<a name="l00313"></a>00313         pnode = pnext;
<a name="l00314"></a>00314 
<a name="l00315"></a>00315         <span class="keywordflow">while</span> (pnode != NULL)
<a name="l00316"></a>00316         {
<a name="l00317"></a>00317             pnext = pnode-&gt;my_next;
<a name="l00318"></a>00318             destroy_node(pnode);
<a name="l00319"></a>00319             pnode = pnext;
<a name="l00320"></a>00320         }
<a name="l00321"></a>00321 
<a name="l00322"></a>00322         my_element_count = 0;
<a name="l00323"></a>00323     }
<a name="l00324"></a>00324 
<a name="l00325"></a>00325     <span class="comment">// Returns a first non-dummy element in the SOL</span>
<a name="l00326"></a>00326     iterator begin() {
<a name="l00327"></a>00327         <span class="keywordflow">return</span> first_real_iterator(raw_begin());
<a name="l00328"></a>00328     }
<a name="l00329"></a>00329 
<a name="l00330"></a>00330     <span class="comment">// Returns a first non-dummy element in the SOL</span>
<a name="l00331"></a>00331     const_iterator begin()<span class="keyword"> const </span>{
<a name="l00332"></a>00332         <span class="keywordflow">return</span> first_real_iterator(raw_begin());
<a name="l00333"></a>00333     }
<a name="l00334"></a>00334 
<a name="l00335"></a>00335     iterator end() {
<a name="l00336"></a>00336         <span class="keywordflow">return</span> (iterator(0, <span class="keyword">this</span>));
<a name="l00337"></a>00337     }
<a name="l00338"></a>00338 
<a name="l00339"></a>00339     const_iterator end()<span class="keyword"> const </span>{
<a name="l00340"></a>00340         <span class="keywordflow">return</span> (const_iterator(0, <span class="keyword">this</span>));
<a name="l00341"></a>00341     }
<a name="l00342"></a>00342 
<a name="l00343"></a>00343     const_iterator cbegin()<span class="keyword"> const </span>{
<a name="l00344"></a>00344         <span class="keywordflow">return</span> (((<span class="keyword">const</span> self_type *)<span class="keyword">this</span>)-&gt;begin());
<a name="l00345"></a>00345     }
<a name="l00346"></a>00346 
<a name="l00347"></a>00347     const_iterator cend()<span class="keyword"> const </span>{
<a name="l00348"></a>00348         <span class="keywordflow">return</span> (((<span class="keyword">const</span> self_type *)<span class="keyword">this</span>)-&gt;end());
<a name="l00349"></a>00349     }
<a name="l00350"></a>00350 
<a name="l00351"></a>00351     <span class="comment">// Checks if the number of elements (non-dummy) is 0</span>
<a name="l00352"></a>00352     <span class="keywordtype">bool</span> empty()<span class="keyword"> const </span>{
<a name="l00353"></a>00353         <span class="keywordflow">return</span> (my_element_count == 0);
<a name="l00354"></a>00354     }
<a name="l00355"></a>00355 
<a name="l00356"></a>00356     <span class="comment">// Returns the number of non-dummy elements in the list</span>
<a name="l00357"></a>00357     size_type size()<span class="keyword"> const </span>{
<a name="l00358"></a>00358         <span class="keywordflow">return</span> my_element_count;
<a name="l00359"></a>00359     }
<a name="l00360"></a>00360 
<a name="l00361"></a>00361     <span class="comment">// Returns the maximum size of the list, determined by the allocator</span>
<a name="l00362"></a>00362     size_type max_size()<span class="keyword"> const </span>{
<a name="l00363"></a>00363         <span class="keywordflow">return</span> my_node_allocator.max_size();
<a name="l00364"></a>00364     }
<a name="l00365"></a>00365 
<a name="l00366"></a>00366     <span class="comment">// Swaps 'this' list with the passed in one</span>
<a name="l00367"></a>00367     <span class="keywordtype">void</span> swap(self_type&amp; other)
<a name="l00368"></a>00368     {
<a name="l00369"></a>00369         <span class="keywordflow">if</span> (<span class="keyword">this</span> == &amp;other)
<a name="l00370"></a>00370         {
<a name="l00371"></a>00371             <span class="comment">// Nothing to do</span>
<a name="l00372"></a>00372             <span class="keywordflow">return</span>;
<a name="l00373"></a>00373         }
<a name="l00374"></a>00374 
<a name="l00375"></a>00375         std::swap(my_element_count, other.my_element_count);
<a name="l00376"></a>00376         std::swap(my_head, other.my_head);
<a name="l00377"></a>00377     }
<a name="l00378"></a>00378 
<a name="l00379"></a>00379     <span class="comment">// Split-order list functions</span>
<a name="l00380"></a>00380 
<a name="l00381"></a>00381     <span class="comment">// Returns a first element in the SOL, which is always a dummy</span>
<a name="l00382"></a>00382     raw_iterator raw_begin() {
<a name="l00383"></a>00383         <span class="keywordflow">return</span> raw_iterator(my_head);
<a name="l00384"></a>00384     }
<a name="l00385"></a>00385 
<a name="l00386"></a>00386     <span class="comment">// Returns a first element in the SOL, which is always a dummy</span>
<a name="l00387"></a>00387     raw_const_iterator raw_begin()<span class="keyword"> const </span>{
<a name="l00388"></a>00388         <span class="keywordflow">return</span> raw_const_iterator(my_head);
<a name="l00389"></a>00389     }
<a name="l00390"></a>00390 
<a name="l00391"></a>00391     raw_iterator raw_end() {
<a name="l00392"></a>00392         <span class="keywordflow">return</span> raw_iterator(0);
<a name="l00393"></a>00393     }
<a name="l00394"></a>00394 
<a name="l00395"></a>00395     raw_const_iterator raw_end()<span class="keyword"> const </span>{
<a name="l00396"></a>00396         <span class="keywordflow">return</span> raw_const_iterator(0);
<a name="l00397"></a>00397     }
<a name="l00398"></a>00398 
<a name="l00399"></a>00399     <span class="keyword">static</span> sokey_t get_order_key(<span class="keyword">const</span> raw_const_iterator&amp; it) {
<a name="l00400"></a>00400         <span class="keywordflow">return</span> it.get_node_ptr()-&gt;get_order_key();
<a name="l00401"></a>00401     }
<a name="l00402"></a>00402 
<a name="l00403"></a>00403     <span class="keyword">static</span> sokey_t get_safe_order_key(<span class="keyword">const</span> raw_const_iterator&amp; it) {
<a name="l00404"></a>00404         <span class="keywordflow">if</span>( !it.get_node_ptr() ) <span class="keywordflow">return</span> sokey_t(~0U);
<a name="l00405"></a>00405         <span class="keywordflow">return</span> it.get_node_ptr()-&gt;get_order_key();
<a name="l00406"></a>00406     }
<a name="l00407"></a>00407 
<a name="l00408"></a>00408     <span class="comment">// Returns a public iterator version of the internal iterator. Public iterator must not</span>
<a name="l00409"></a>00409     <span class="comment">// be a dummy private iterator.</span>
<a name="l00410"></a>00410     iterator get_iterator(raw_iterator it) {
<a name="l00411"></a>00411         __TBB_ASSERT(it.get_node_ptr() == NULL || !it.get_node_ptr()-&gt;is_dummy(), <span class="stringliteral">"Invalid user node (dummy)"</span>);
<a name="l00412"></a>00412         <span class="keywordflow">return</span> iterator(it.get_node_ptr(), <span class="keyword">this</span>);
<a name="l00413"></a>00413     }
<a name="l00414"></a>00414 
<a name="l00415"></a>00415     <span class="comment">// Returns a public iterator version of the internal iterator. Public iterator must not</span>
<a name="l00416"></a>00416     <span class="comment">// be a dummy private iterator.</span>
<a name="l00417"></a>00417     const_iterator get_iterator(raw_const_iterator it)<span class="keyword"> const </span>{
<a name="l00418"></a>00418         __TBB_ASSERT(it.get_node_ptr() == NULL || !it.get_node_ptr()-&gt;is_dummy(), <span class="stringliteral">"Invalid user node (dummy)"</span>);
<a name="l00419"></a>00419         <span class="keywordflow">return</span> const_iterator(it.get_node_ptr(), <span class="keyword">this</span>);
<a name="l00420"></a>00420     }
<a name="l00421"></a>00421 
<a name="l00422"></a>00422     <span class="comment">// Returns a non-const version of the raw_iterator</span>
<a name="l00423"></a>00423     raw_iterator get_iterator(raw_const_iterator it) {
<a name="l00424"></a>00424         <span class="keywordflow">return</span> raw_iterator(it.get_node_ptr());
<a name="l00425"></a>00425     }
<a name="l00426"></a>00426 
<a name="l00427"></a>00427     <span class="comment">// Returns a non-const version of the iterator</span>
<a name="l00428"></a>00428     <span class="keyword">static</span> iterator get_iterator(const_iterator it) {
<a name="l00429"></a>00429         <span class="keywordflow">return</span> iterator(it.my_node_ptr, it.my_list_ptr);
<a name="l00430"></a>00430     }
<a name="l00431"></a>00431 
<a name="l00432"></a>00432     <span class="comment">// Returns a public iterator version of a first non-dummy internal iterator at or after</span>
<a name="l00433"></a>00433     <span class="comment">// the passed in internal iterator.</span>
<a name="l00434"></a>00434     iterator first_real_iterator(raw_iterator it)
<a name="l00435"></a>00435     {
<a name="l00436"></a>00436         <span class="comment">// Skip all dummy, internal only iterators</span>
<a name="l00437"></a>00437         <span class="keywordflow">while</span> (it != raw_end() &amp;&amp; it.get_node_ptr()-&gt;is_dummy())
<a name="l00438"></a>00438             ++it;
<a name="l00439"></a>00439 
<a name="l00440"></a>00440         <span class="keywordflow">return</span> iterator(it.get_node_ptr(), <span class="keyword">this</span>);
<a name="l00441"></a>00441     }
<a name="l00442"></a>00442 
<a name="l00443"></a>00443     <span class="comment">// Returns a public iterator version of a first non-dummy internal iterator at or after</span>
<a name="l00444"></a>00444     <span class="comment">// the passed in internal iterator.</span>
<a name="l00445"></a>00445     const_iterator first_real_iterator(raw_const_iterator it)<span class="keyword"> const</span>
<a name="l00446"></a>00446 <span class="keyword">    </span>{
<a name="l00447"></a>00447         <span class="comment">// Skip all dummy, internal only iterators</span>
<a name="l00448"></a>00448         <span class="keywordflow">while</span> (it != raw_end() &amp;&amp; it.get_node_ptr()-&gt;is_dummy())
<a name="l00449"></a>00449             ++it;
<a name="l00450"></a>00450 
<a name="l00451"></a>00451         <span class="keywordflow">return</span> const_iterator(it.get_node_ptr(), <span class="keyword">this</span>);
<a name="l00452"></a>00452     }
<a name="l00453"></a>00453 
<a name="l00454"></a>00454     <span class="comment">// Erase an element using the allocator</span>
<a name="l00455"></a>00455     <span class="keywordtype">void</span> destroy_node(nodeptr_t pnode) {
<a name="l00456"></a>00456         my_node_allocator.destroy(pnode);
<a name="l00457"></a>00457         my_node_allocator.deallocate(pnode, 1);
<a name="l00458"></a>00458     }
<a name="l00459"></a>00459 
<a name="l00460"></a>00460     <span class="comment">// Try to insert a new element in the list. If insert fails, return the node that</span>
<a name="l00461"></a>00461     <span class="comment">// was inserted instead.</span>
<a name="l00462"></a>00462     nodeptr_t try_insert(nodeptr_t previous, nodeptr_t new_node, nodeptr_t current_node) {
<a name="l00463"></a>00463         new_node-&gt;my_next = current_node;
<a name="l00464"></a>00464         <span class="keywordflow">return</span> previous-&gt;atomic_set_next(new_node, current_node);
<a name="l00465"></a>00465     }
<a name="l00466"></a>00466 
<a name="l00467"></a>00467     <span class="comment">// Insert a new element between passed in iterators</span>
<a name="l00468"></a>00468     std::pair&lt;iterator, bool&gt; try_insert(raw_iterator it, raw_iterator next, <span class="keyword">const</span> value_type &amp;value, sokey_t order_key, size_type *new_count)
<a name="l00469"></a>00469     {
<a name="l00470"></a>00470         nodeptr_t pnode = create_node(order_key, value);
<a name="l00471"></a>00471         nodeptr_t inserted_node = try_insert(it.get_node_ptr(), pnode, next.get_node_ptr());
<a name="l00472"></a>00472 
<a name="l00473"></a>00473         <span class="keywordflow">if</span> (inserted_node == pnode)
<a name="l00474"></a>00474         {
<a name="l00475"></a>00475             <span class="comment">// If the insert succeeded, check that the order is correct and increment the element count</span>
<a name="l00476"></a>00476             check_range();
<a name="l00477"></a>00477             *new_count = __TBB_FetchAndAddW((uintptr_t*)&amp;my_element_count, uintptr_t(1));
<a name="l00478"></a>00478             <span class="keywordflow">return</span> std::pair&lt;iterator, bool&gt;(iterator(pnode, <span class="keyword">this</span>), <span class="keyword">true</span>);
<a name="l00479"></a>00479         }
<a name="l00480"></a>00480         <span class="keywordflow">else</span>
<a name="l00481"></a>00481         {
<a name="l00482"></a>00482             <span class="comment">// If the insert failed (element already there), then delete the new one</span>
<a name="l00483"></a>00483             destroy_node(pnode);
<a name="l00484"></a>00484             <span class="keywordflow">return</span> std::pair&lt;iterator, bool&gt;(end(), <span class="keyword">false</span>);
<a name="l00485"></a>00485         }
<a name="l00486"></a>00486     }
<a name="l00487"></a>00487 
<a name="l00488"></a>00488     <span class="comment">// Insert a new dummy element, starting search at a parent dummy element</span>
<a name="l00489"></a>00489     raw_iterator insert_dummy(raw_iterator it, sokey_t order_key)
<a name="l00490"></a>00490     {
<a name="l00491"></a>00491         raw_iterator last = raw_end();
<a name="l00492"></a>00492         raw_iterator where = it;
<a name="l00493"></a>00493 
<a name="l00494"></a>00494         __TBB_ASSERT(where != last, <span class="stringliteral">"Invalid head node"</span>);
<a name="l00495"></a>00495 
<a name="l00496"></a>00496         ++where;
<a name="l00497"></a>00497 
<a name="l00498"></a>00498         <span class="comment">// Create a dummy element up front, even though it may be discarded (due to concurrent insertion)</span>
<a name="l00499"></a>00499         nodeptr_t dummy_node = create_node(order_key);
<a name="l00500"></a>00500 
<a name="l00501"></a>00501         <span class="keywordflow">for</span> (;;)
<a name="l00502"></a>00502         {
<a name="l00503"></a>00503             __TBB_ASSERT(it != last, <span class="stringliteral">"Invalid head list node"</span>);
<a name="l00504"></a>00504 
<a name="l00505"></a>00505             <span class="comment">// If the head iterator is at the end of the list, or past the point where this dummy</span>
<a name="l00506"></a>00506             <span class="comment">// node needs to be inserted, then try to insert it.</span>
<a name="l00507"></a>00507             <span class="keywordflow">if</span> (where == last || get_order_key(where) &gt; order_key)
<a name="l00508"></a>00508             {
<a name="l00509"></a>00509                 __TBB_ASSERT(get_order_key(it) &lt; order_key, <span class="stringliteral">"Invalid node order in the list"</span>);
<a name="l00510"></a>00510 
<a name="l00511"></a>00511                 <span class="comment">// Try to insert it in the right place</span>
<a name="l00512"></a>00512                 nodeptr_t inserted_node = try_insert(it.get_node_ptr(), dummy_node, where.get_node_ptr());
<a name="l00513"></a>00513 
<a name="l00514"></a>00514                 <span class="keywordflow">if</span> (inserted_node == dummy_node)
<a name="l00515"></a>00515                 {
<a name="l00516"></a>00516                     <span class="comment">// Insertion succeeded, check the list for order violations</span>
<a name="l00517"></a>00517                     check_range();
<a name="l00518"></a>00518                     <span class="keywordflow">return</span> raw_iterator(dummy_node);
<a name="l00519"></a>00519                 }
<a name="l00520"></a>00520                 <span class="keywordflow">else</span>
<a name="l00521"></a>00521                 {
<a name="l00522"></a>00522                     <span class="comment">// Insertion failed: either dummy node was inserted by another thread, or</span>
<a name="l00523"></a>00523                     <span class="comment">// a real element was inserted at exactly the same place as dummy node.</span>
<a name="l00524"></a>00524                     <span class="comment">// Proceed with the search from the previous location where order key was</span>
<a name="l00525"></a>00525                     <span class="comment">// known to be larger (note: this is legal only because there is no safe</span>
<a name="l00526"></a>00526                     <span class="comment">// concurrent erase operation supported).</span>
<a name="l00527"></a>00527                     where = it;
<a name="l00528"></a>00528                     ++where;
<a name="l00529"></a>00529                     <span class="keywordflow">continue</span>;
<a name="l00530"></a>00530                 }
<a name="l00531"></a>00531             }
<a name="l00532"></a>00532             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (get_order_key(where) == order_key)
<a name="l00533"></a>00533             {
<a name="l00534"></a>00534                 <span class="comment">// Another dummy node with the same value found, discard the new one.</span>
<a name="l00535"></a>00535                 destroy_node(dummy_node);
<a name="l00536"></a>00536                 <span class="keywordflow">return</span> where;
<a name="l00537"></a>00537             }
<a name="l00538"></a>00538 
<a name="l00539"></a>00539             <span class="comment">// Move the iterator forward</span>
<a name="l00540"></a>00540             it = where;
<a name="l00541"></a>00541             ++where;
<a name="l00542"></a>00542         }
<a name="l00543"></a>00543 
<a name="l00544"></a>00544     }
<a name="l00545"></a>00545 
<a name="l00546"></a>00546     <span class="comment">// This erase function can handle both real and dummy nodes</span>
<a name="l00547"></a>00547     <span class="keywordtype">void</span> erase_node(raw_iterator previous, raw_const_iterator&amp; where)
<a name="l00548"></a>00548     {
<a name="l00549"></a>00549         nodeptr_t pnode = (where++).get_node_ptr();
<a name="l00550"></a>00550         nodeptr_t prevnode = previous.get_node_ptr();
<a name="l00551"></a>00551         __TBB_ASSERT(prevnode-&gt;my_next == pnode, <span class="stringliteral">"Erase must take consecutive iterators"</span>);
<a name="l00552"></a>00552         prevnode-&gt;my_next = pnode-&gt;my_next;
<a name="l00553"></a>00553 
<a name="l00554"></a>00554         destroy_node(pnode);
<a name="l00555"></a>00555     }
<a name="l00556"></a>00556 
<a name="l00557"></a>00557     <span class="comment">// Erase the element (previous node needs to be passed because this is a forward only list)</span>
<a name="l00558"></a>00558     iterator erase_node(raw_iterator previous, const_iterator where)
<a name="l00559"></a>00559     {
<a name="l00560"></a>00560         raw_const_iterator it = where;
<a name="l00561"></a>00561         erase_node(previous, it);
<a name="l00562"></a>00562         my_element_count--;
<a name="l00563"></a>00563 
<a name="l00564"></a>00564         <span class="keywordflow">return</span> get_iterator(first_real_iterator(it));
<a name="l00565"></a>00565     }
<a name="l00566"></a>00566 
<a name="l00567"></a>00567     <span class="comment">// Move all elements from the passed in split-ordered list to this one</span>
<a name="l00568"></a>00568     <span class="keywordtype">void</span> move_all(self_type&amp; source)
<a name="l00569"></a>00569     {
<a name="l00570"></a>00570         raw_const_iterator first = source.raw_begin();
<a name="l00571"></a>00571         raw_const_iterator last = source.raw_end();
<a name="l00572"></a>00572 
<a name="l00573"></a>00573         <span class="keywordflow">if</span> (first == last)
<a name="l00574"></a>00574             <span class="keywordflow">return</span>;
<a name="l00575"></a>00575 
<a name="l00576"></a>00576         nodeptr_t previous_node = my_head;
<a name="l00577"></a>00577         raw_const_iterator begin_iterator = first++;
<a name="l00578"></a>00578 
<a name="l00579"></a>00579         <span class="comment">// Move all elements one by one, including dummy ones</span>
<a name="l00580"></a>00580         <span class="keywordflow">for</span> (raw_const_iterator it = first; it != last;)
<a name="l00581"></a>00581         {
<a name="l00582"></a>00582             nodeptr_t pnode = it.get_node_ptr();
<a name="l00583"></a>00583 
<a name="l00584"></a>00584             nodeptr_t dummy_node = pnode-&gt;is_dummy() ? create_node(pnode-&gt;get_order_key()) : create_node(pnode-&gt;get_order_key(), pnode-&gt;my_element);
<a name="l00585"></a>00585             previous_node = try_insert(previous_node, dummy_node, NULL);
<a name="l00586"></a>00586             __TBB_ASSERT(previous_node != NULL, <span class="stringliteral">"Insertion must succeed"</span>);
<a name="l00587"></a>00587             raw_const_iterator where = it++;
<a name="l00588"></a>00588             source.erase_node(get_iterator(begin_iterator), where);
<a name="l00589"></a>00589         }
<a name="l00590"></a>00590         check_range();
<a name="l00591"></a>00591     }
<a name="l00592"></a>00592 
<a name="l00593"></a>00593 
<a name="l00594"></a>00594 <span class="keyword">private</span>:
<a name="l00595"></a>00595 
<a name="l00596"></a>00596     <span class="comment">// Check the list for order violations</span>
<a name="l00597"></a>00597     <span class="keywordtype">void</span> check_range()
<a name="l00598"></a>00598     {
<a name="l00599"></a>00599 <span class="preprocessor">#if TBB_USE_ASSERT</span>
<a name="l00600"></a>00600 <span class="preprocessor"></span>        <span class="keywordflow">for</span> (raw_iterator it = raw_begin(); it != raw_end(); ++it)
<a name="l00601"></a>00601         {
<a name="l00602"></a>00602             raw_iterator next_iterator = it;
<a name="l00603"></a>00603             ++next_iterator;
<a name="l00604"></a>00604 
<a name="l00605"></a>00605             __TBB_ASSERT(next_iterator == end() || next_iterator.get_node_ptr()-&gt;get_order_key() &gt;= it.get_node_ptr()-&gt;get_order_key(), <span class="stringliteral">"!!! List order inconsistency !!!"</span>);
<a name="l00606"></a>00606         }
<a name="l00607"></a>00607 <span class="preprocessor">#endif</span>
<a name="l00608"></a>00608 <span class="preprocessor"></span>    }
<a name="l00609"></a>00609 
<a name="l00610"></a>00610     <span class="keyword">typename</span> allocator_type::template rebind&lt;node&gt;::other my_node_allocator;  <span class="comment">// allocator object for nodes</span>
<a name="l00611"></a>00611     size_type                                             my_element_count;   <span class="comment">// Total item count, not counting dummy nodes</span>
<a name="l00612"></a>00612     nodeptr_t                                             my_head;            <span class="comment">// pointer to head node</span>
<a name="l00613"></a>00613 };
<a name="l00614"></a>00614 
<a name="l00615"></a>00615 <span class="comment">// Template class for hash compare</span>
<a name="l00616"></a>00616 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Key, <span class="keyword">typename</span> Hasher, <span class="keyword">typename</span> Key_equality&gt;
<a name="l00617"></a>00617 <span class="keyword">class </span>hash_compare
<a name="l00618"></a>00618 {
<a name="l00619"></a>00619 <span class="keyword">public</span>:
<a name="l00620"></a>00620     hash_compare() {}
<a name="l00621"></a>00621 
<a name="l00622"></a>00622     hash_compare(Hasher a_hasher) : my_hash_object(a_hasher) {}
<a name="l00623"></a>00623 
<a name="l00624"></a>00624     hash_compare(Hasher a_hasher, Key_equality a_keyeq) : my_hash_object(a_hasher), my_key_compare_object(a_keyeq) {}
<a name="l00625"></a>00625 
<a name="l00626"></a>00626     size_t operator()(<span class="keyword">const</span> Key&amp; key)<span class="keyword"> const </span>{
<a name="l00627"></a>00627         <span class="keywordflow">return</span> ((size_t)my_hash_object(key));
<a name="l00628"></a>00628     }
<a name="l00629"></a>00629 
<a name="l00630"></a>00630     <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> Key&amp; key1, <span class="keyword">const</span> Key&amp; key2)<span class="keyword"> const </span>{
<a name="l00631"></a>00631         <span class="keywordflow">return</span> (!my_key_compare_object(key1, key2));
<a name="l00632"></a>00632     }
<a name="l00633"></a>00633 
<a name="l00634"></a>00634     Hasher       my_hash_object;        <span class="comment">// The hash object</span>
<a name="l00635"></a>00635     Key_equality my_key_compare_object; <span class="comment">// The equality comparator object</span>
<a name="l00636"></a>00636 };
<a name="l00637"></a>00637 
<a name="l00638"></a>00638 <span class="preprocessor">#if _MSC_VER</span>
<a name="l00639"></a>00639 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(push)</span>
<a name="l00640"></a>00640 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(disable: 4127) // warning 4127 -- while (true) has a constant expression in it (for allow_multimapping)</span>
<a name="l00641"></a>00641 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00642"></a>00642 <span class="preprocessor"></span>
<a name="l00643"></a>00643 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Traits&gt;
<a name="l00644"></a>00644 <span class="keyword">class </span>concurrent_unordered_base : <span class="keyword">public</span> Traits
<a name="l00645"></a>00645 {
<a name="l00646"></a>00646 <span class="keyword">protected</span>:
<a name="l00647"></a>00647     <span class="comment">// Type definitions</span>
<a name="l00648"></a>00648     <span class="keyword">typedef</span> concurrent_unordered_base&lt;Traits&gt; self_type;
<a name="l00649"></a>00649     <span class="keyword">typedef</span> <span class="keyword">typename</span> Traits::value_type value_type;
<a name="l00650"></a>00650     <span class="keyword">typedef</span> <span class="keyword">typename</span> Traits::key_type key_type;
<a name="l00651"></a>00651     <span class="keyword">typedef</span> <span class="keyword">typename</span> Traits::hash_compare hash_compare;
<a name="l00652"></a>00652     <span class="keyword">typedef</span> <span class="keyword">typename</span> Traits::value_compare value_compare;
<a name="l00653"></a>00653     <span class="keyword">typedef</span> <span class="keyword">typename</span> Traits::allocator_type allocator_type;
<a name="l00654"></a>00654     <span class="keyword">typedef</span> <span class="keyword">typename</span> allocator_type::pointer pointer;
<a name="l00655"></a>00655     <span class="keyword">typedef</span> <span class="keyword">typename</span> allocator_type::const_pointer const_pointer;
<a name="l00656"></a>00656     <span class="keyword">typedef</span> <span class="keyword">typename</span> allocator_type::reference reference;
<a name="l00657"></a>00657     <span class="keyword">typedef</span> <span class="keyword">typename</span> allocator_type::const_reference const_reference;
<a name="l00658"></a>00658     <span class="keyword">typedef</span> <span class="keyword">typename</span> allocator_type::size_type size_type;
<a name="l00659"></a>00659     <span class="keyword">typedef</span> <span class="keyword">typename</span> allocator_type::difference_type difference_type;
<a name="l00660"></a>00660     <span class="keyword">typedef</span> split_ordered_list&lt;value_type, typename Traits::allocator_type&gt; solist_t;
<a name="l00661"></a>00661     <span class="keyword">typedef</span> <span class="keyword">typename</span> solist_t::nodeptr_t nodeptr_t;
<a name="l00662"></a>00662     <span class="comment">// Iterators that walk the entire split-order list, including dummy nodes</span>
<a name="l00663"></a>00663     <span class="keyword">typedef</span> <span class="keyword">typename</span> solist_t::raw_iterator raw_iterator;
<a name="l00664"></a>00664     <span class="keyword">typedef</span> <span class="keyword">typename</span> solist_t::raw_const_iterator raw_const_iterator;
<a name="l00665"></a>00665     <span class="keyword">typedef</span> <span class="keyword">typename</span> solist_t::iterator iterator; <span class="comment">// TODO: restore const iterator for unordered_sets</span>
<a name="l00666"></a>00666     <span class="keyword">typedef</span> <span class="keyword">typename</span> solist_t::const_iterator const_iterator;
<a name="l00667"></a>00667     <span class="keyword">typedef</span> iterator local_iterator;
<a name="l00668"></a>00668     <span class="keyword">typedef</span> const_iterator const_local_iterator;
<a name="l00669"></a>00669     <span class="keyword">using</span> Traits::my_hash_compare;
<a name="l00670"></a>00670     <span class="keyword">using</span> Traits::get_key;
<a name="l00671"></a>00671     <span class="keyword">using</span> Traits::allow_multimapping;
<a name="l00672"></a>00672 
<a name="l00673"></a>00673 <span class="keyword">private</span>:
<a name="l00674"></a>00674     <span class="keyword">typedef</span> std::pair&lt;iterator, iterator&gt; pairii_t;
<a name="l00675"></a>00675     <span class="keyword">typedef</span> std::pair&lt;const_iterator, const_iterator&gt; paircc_t;
<a name="l00676"></a>00676 
<a name="l00677"></a>00677     <span class="keyword">static</span> size_type <span class="keyword">const</span> pointers_per_table = <span class="keyword">sizeof</span>(size_type) * 8;              <span class="comment">// One bucket segment per bit</span>
<a name="l00678"></a>00678     <span class="keyword">static</span> <span class="keyword">const</span> size_type initial_bucket_number = 8;                               <span class="comment">// Initial number of buckets</span>
<a name="l00679"></a>00679     <span class="keyword">static</span> <span class="keyword">const</span> size_type initial_bucket_load = 4;                                <span class="comment">// Initial maximum number of elements per bucket</span>
<a name="l00680"></a>00680 
<a name="l00681"></a>00681 <span class="keyword">protected</span>:
<a name="l00682"></a>00682     <span class="comment">// Constructors/Destructors</span>
<a name="l00683"></a>00683     concurrent_unordered_base(size_type n_of_buckets = initial_bucket_number,
<a name="l00684"></a>00684         <span class="keyword">const</span> hash_compare&amp; hc = hash_compare(), <span class="keyword">const</span> allocator_type&amp; a = allocator_type())
<a name="l00685"></a>00685         : Traits(hc), my_number_of_buckets(n_of_buckets), my_solist(a),
<a name="l00686"></a>00686           my_allocator(a), my_maximum_bucket_size((float) initial_bucket_load)
<a name="l00687"></a>00687     {
<a name="l00688"></a>00688         internal_init();
<a name="l00689"></a>00689     }
<a name="l00690"></a>00690 
<a name="l00691"></a>00691     concurrent_unordered_base(<span class="keyword">const</span> concurrent_unordered_base&amp; right, <span class="keyword">const</span> allocator_type&amp; a)
<a name="l00692"></a>00692         : Traits(right.my_hash_compare), my_solist(a), my_allocator(a)
<a name="l00693"></a>00693     {
<a name="l00694"></a>00694         internal_copy(right);
<a name="l00695"></a>00695     }
<a name="l00696"></a>00696 
<a name="l00697"></a>00697     concurrent_unordered_base(<span class="keyword">const</span> concurrent_unordered_base&amp; right)
<a name="l00698"></a>00698         : Traits(right.my_hash_compare), my_solist(right.get_allocator()), my_allocator(right.get_allocator())
<a name="l00699"></a>00699     {
<a name="l00700"></a>00700         internal_init();
<a name="l00701"></a>00701         internal_copy(right);
<a name="l00702"></a>00702     }
<a name="l00703"></a>00703 
<a name="l00704"></a>00704     concurrent_unordered_base&amp; operator=(<span class="keyword">const</span> concurrent_unordered_base&amp; right) {
<a name="l00705"></a>00705         <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;right)
<a name="l00706"></a>00706             internal_copy(right);
<a name="l00707"></a>00707         <span class="keywordflow">return</span> (*<span class="keyword">this</span>);
<a name="l00708"></a>00708     }
<a name="l00709"></a>00709 
<a name="l00710"></a>00710     ~concurrent_unordered_base() {
<a name="l00711"></a>00711         <span class="comment">// Delete all node segments</span>
<a name="l00712"></a>00712         internal_clear();
<a name="l00713"></a>00713     }
<a name="l00714"></a>00714 
<a name="l00715"></a>00715 <span class="keyword">public</span>:
<a name="l00716"></a>00716     allocator_type get_allocator()<span class="keyword"> const </span>{
<a name="l00717"></a>00717         <span class="keywordflow">return</span> my_solist.get_allocator();
<a name="l00718"></a>00718     }
<a name="l00719"></a>00719 
<a name="l00720"></a>00720     <span class="comment">// Size and capacity function</span>
<a name="l00721"></a>00721     <span class="keywordtype">bool</span> empty()<span class="keyword"> const </span>{
<a name="l00722"></a>00722         <span class="keywordflow">return</span> my_solist.empty();
<a name="l00723"></a>00723     }
<a name="l00724"></a>00724 
<a name="l00725"></a>00725     size_type size()<span class="keyword"> const </span>{
<a name="l00726"></a>00726         <span class="keywordflow">return</span> my_solist.size();
<a name="l00727"></a>00727     }
<a name="l00728"></a>00728 
<a name="l00729"></a>00729     size_type max_size()<span class="keyword"> const </span>{
<a name="l00730"></a>00730         <span class="keywordflow">return</span> my_solist.max_size();
<a name="l00731"></a>00731     }
<a name="l00732"></a>00732 
<a name="l00733"></a>00733     <span class="comment">// Iterators </span>
<a name="l00734"></a>00734     iterator begin() {
<a name="l00735"></a>00735         <span class="keywordflow">return</span> my_solist.begin();
<a name="l00736"></a>00736     }
<a name="l00737"></a>00737 
<a name="l00738"></a>00738     const_iterator begin()<span class="keyword"> const </span>{
<a name="l00739"></a>00739         <span class="keywordflow">return</span> my_solist.begin();
<a name="l00740"></a>00740     }
<a name="l00741"></a>00741 
<a name="l00742"></a>00742     iterator end() {
<a name="l00743"></a>00743         <span class="keywordflow">return</span> my_solist.end();
<a name="l00744"></a>00744     }
<a name="l00745"></a>00745 
<a name="l00746"></a>00746     const_iterator end()<span class="keyword"> const </span>{
<a name="l00747"></a>00747         <span class="keywordflow">return</span> my_solist.end();
<a name="l00748"></a>00748     }
<a name="l00749"></a>00749 
<a name="l00750"></a>00750     const_iterator cbegin()<span class="keyword"> const </span>{
<a name="l00751"></a>00751         <span class="keywordflow">return</span> my_solist.cbegin();
<a name="l00752"></a>00752     }
<a name="l00753"></a>00753 
<a name="l00754"></a>00754     const_iterator cend()<span class="keyword"> const </span>{
<a name="l00755"></a>00755         <span class="keywordflow">return</span> my_solist.cend();
<a name="l00756"></a>00756     }
<a name="l00757"></a>00757 
<a name="l00758"></a>00758     <span class="comment">// Parallel traversal support</span>
<a name="l00759"></a>00759     <span class="keyword">class </span>const_range_type : tbb::internal::no_assign {
<a name="l00760"></a>00760         <span class="keyword">const</span> concurrent_unordered_base &amp;my_table;
<a name="l00761"></a>00761         raw_const_iterator my_begin_node;
<a name="l00762"></a>00762         raw_const_iterator my_end_node;
<a name="l00763"></a>00763         <span class="keyword">mutable</span> raw_const_iterator my_midpoint_node;
<a name="l00764"></a>00764     <span class="keyword">public</span>:
<a name="l00766"></a>00766         <span class="keyword">typedef</span> <span class="keyword">typename</span> concurrent_unordered_base::size_type size_type;
<a name="l00767"></a>00767         <span class="keyword">typedef</span> <span class="keyword">typename</span> concurrent_unordered_base::value_type value_type;
<a name="l00768"></a>00768         <span class="keyword">typedef</span> <span class="keyword">typename</span> concurrent_unordered_base::reference reference;
<a name="l00769"></a>00769         <span class="keyword">typedef</span> <span class="keyword">typename</span> concurrent_unordered_base::difference_type difference_type;
<a name="l00770"></a>00770         <span class="keyword">typedef</span> <span class="keyword">typename</span> concurrent_unordered_base::const_iterator iterator;
<a name="l00771"></a>00771 
<a name="l00773"></a>00773         <span class="keywordtype">bool</span> empty()<span class="keyword"> const </span>{<span class="keywordflow">return</span> my_begin_node == my_end_node;}
<a name="l00774"></a>00774 
<a name="l00776"></a>00776         <span class="keywordtype">bool</span> is_divisible()<span class="keyword"> const </span>{
<a name="l00777"></a>00777             <span class="keywordflow">return</span> my_midpoint_node != my_end_node;
<a name="l00778"></a>00778         }
<a name="l00780"></a>00780         const_range_type( const_range_type &amp;r, split ) : 
<a name="l00781"></a>00781             my_table(r.my_table), my_end_node(r.my_end_node)
<a name="l00782"></a>00782         {
<a name="l00783"></a>00783             r.my_end_node = my_begin_node = r.my_midpoint_node;
<a name="l00784"></a>00784             __TBB_ASSERT( !empty(), <span class="stringliteral">"Splitting despite the range is not divisible"</span> );
<a name="l00785"></a>00785             __TBB_ASSERT( !r.empty(), <span class="stringliteral">"Splitting despite the range is not divisible"</span> );
<a name="l00786"></a>00786             set_midpoint();
<a name="l00787"></a>00787             r.set_midpoint();
<a name="l00788"></a>00788         }
<a name="l00790"></a>00790         const_range_type( <span class="keyword">const</span> concurrent_unordered_base &amp;a_table ) : 
<a name="l00791"></a>00791             my_table(a_table), my_begin_node(a_table.my_solist.begin()),
<a name="l00792"></a>00792             my_end_node(a_table.my_solist.end())
<a name="l00793"></a>00793         {
<a name="l00794"></a>00794             set_midpoint();
<a name="l00795"></a>00795         }
<a name="l00796"></a>00796         iterator begin()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> my_table.my_solist.get_iterator(my_begin_node); }
<a name="l00797"></a>00797         iterator end()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> my_table.my_solist.get_iterator(my_end_node); }
<a name="l00799"></a>00799         size_type grainsize()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 1; }
<a name="l00800"></a>00800 
<a name="l00802"></a>00802         <span class="keywordtype">void</span> set_midpoint()<span class="keyword"> const </span>{
<a name="l00803"></a>00803             <span class="keywordflow">if</span>( my_begin_node == my_end_node ) <span class="comment">// not divisible</span>
<a name="l00804"></a>00804                 my_midpoint_node = my_end_node;
<a name="l00805"></a>00805             <span class="keywordflow">else</span> {
<a name="l00806"></a>00806                 sokey_t begin_key = solist_t::get_safe_order_key(my_begin_node);
<a name="l00807"></a>00807                 sokey_t end_key = solist_t::get_safe_order_key(my_end_node);
<a name="l00808"></a>00808                 size_t mid_bucket = __TBB_ReverseBits( begin_key + (end_key-begin_key)/2 ) % my_table.my_number_of_buckets;
<a name="l00809"></a>00809                 <span class="keywordflow">while</span> ( !my_table.is_initialized(mid_bucket) ) mid_bucket = my_table.get_parent(mid_bucket);
<a name="l00810"></a>00810                 my_midpoint_node = my_table.my_solist.first_real_iterator(my_table.get_bucket( mid_bucket ));
<a name="l00811"></a>00811                 <span class="keywordflow">if</span>( my_midpoint_node == my_begin_node )
<a name="l00812"></a>00812                     my_midpoint_node = my_end_node;
<a name="l00813"></a>00813 <span class="preprocessor">#if TBB_USE_ASSERT</span>
<a name="l00814"></a>00814 <span class="preprocessor"></span>                <span class="keywordflow">else</span> {
<a name="l00815"></a>00815                     sokey_t mid_key = solist_t::get_safe_order_key(my_midpoint_node);
<a name="l00816"></a>00816                     __TBB_ASSERT( begin_key &lt; mid_key, <span class="stringliteral">"my_begin_node is after my_midpoint_node"</span> );
<a name="l00817"></a>00817                     __TBB_ASSERT( mid_key &lt;= end_key, <span class="stringliteral">"my_midpoint_node is after my_end_node"</span> );
<a name="l00818"></a>00818                 }
<a name="l00819"></a>00819 <span class="preprocessor">#endif // TBB_USE_ASSERT</span>
<a name="l00820"></a>00820 <span class="preprocessor"></span>            }
<a name="l00821"></a>00821         }
<a name="l00822"></a>00822     };
<a name="l00823"></a>00823 
<a name="l00824"></a>00824     <span class="keyword">class </span>range_type : <span class="keyword">public</span> const_range_type {
<a name="l00825"></a>00825     <span class="keyword">public</span>:
<a name="l00826"></a>00826         <span class="keyword">typedef</span> <span class="keyword">typename</span> concurrent_unordered_base::iterator iterator;
<a name="l00828"></a>00828         range_type( range_type &amp;r, split ) : const_range_type( r, split() ) {}
<a name="l00830"></a>00830         range_type( <span class="keyword">const</span> concurrent_unordered_base &amp;a_table ) : const_range_type(a_table) {}
<a name="l00831"></a>00831 
<a name="l00832"></a>00832         iterator begin()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> solist_t::get_iterator( const_range_type::begin() ); }
<a name="l00833"></a>00833         iterator end()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> solist_t::get_iterator( const_range_type::end() ); }
<a name="l00834"></a>00834     };
<a name="l00835"></a>00835 
<a name="l00836"></a>00836     range_type range() {
<a name="l00837"></a>00837         <span class="keywordflow">return</span> range_type( *<span class="keyword">this</span> );
<a name="l00838"></a>00838     }
<a name="l00839"></a>00839 
<a name="l00840"></a>00840     const_range_type range()<span class="keyword"> const </span>{
<a name="l00841"></a>00841         <span class="keywordflow">return</span> const_range_type( *<span class="keyword">this</span> );
<a name="l00842"></a>00842     }
<a name="l00843"></a>00843 
<a name="l00844"></a>00844     <span class="comment">// Modifiers</span>
<a name="l00845"></a>00845     std::pair&lt;iterator, bool&gt; insert(<span class="keyword">const</span> value_type&amp; value) {
<a name="l00846"></a>00846         <span class="keywordflow">return</span> internal_insert(value);
<a name="l00847"></a>00847     }
<a name="l00848"></a>00848 
<a name="l00849"></a>00849     iterator insert(const_iterator, <span class="keyword">const</span> value_type&amp; value) {
<a name="l00850"></a>00850         <span class="comment">// Ignore hint</span>
<a name="l00851"></a>00851         <span class="keywordflow">return</span> insert(value).first;
<a name="l00852"></a>00852     }
<a name="l00853"></a>00853 
<a name="l00854"></a>00854     <span class="keyword">template</span>&lt;<span class="keyword">class</span> Iterator&gt;
<a name="l00855"></a>00855     <span class="keywordtype">void</span> insert(Iterator first, Iterator last) {
<a name="l00856"></a>00856         <span class="keywordflow">for</span> (Iterator it = first; it != last; ++it)
<a name="l00857"></a>00857             insert(*it);
<a name="l00858"></a>00858     }
<a name="l00859"></a>00859 
<a name="l00860"></a>00860     iterator unsafe_erase(const_iterator where) {
<a name="l00861"></a>00861         <span class="keywordflow">return</span> internal_erase(where);
<a name="l00862"></a>00862     }
<a name="l00863"></a>00863 
<a name="l00864"></a>00864     iterator unsafe_erase(const_iterator first, const_iterator last) {
<a name="l00865"></a>00865         <span class="keywordflow">while</span> (first != last)
<a name="l00866"></a>00866             unsafe_erase(first++);
<a name="l00867"></a>00867         <span class="keywordflow">return</span> my_solist.get_iterator(first);
<a name="l00868"></a>00868     }
<a name="l00869"></a>00869 
<a name="l00870"></a>00870     size_type unsafe_erase(<span class="keyword">const</span> key_type&amp; key) {
<a name="l00871"></a>00871         pairii_t where = equal_range(key);
<a name="l00872"></a>00872         size_type item_count = internal_distance(where.first, where.second);
<a name="l00873"></a>00873         unsafe_erase(where.first, where.second);
<a name="l00874"></a>00874         <span class="keywordflow">return</span> item_count;
<a name="l00875"></a>00875     }
<a name="l00876"></a>00876 
<a name="l00877"></a>00877     <span class="keywordtype">void</span> swap(concurrent_unordered_base&amp; right) {
<a name="l00878"></a>00878         <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;right) {
<a name="l00879"></a>00879             std::swap(my_hash_compare, right.my_hash_compare); <span class="comment">// TODO: check what ADL meant here</span>
<a name="l00880"></a>00880             my_solist.swap(right.my_solist);
<a name="l00881"></a>00881             internal_swap_buckets(right);
<a name="l00882"></a>00882             std::swap(my_number_of_buckets, right.my_number_of_buckets);
<a name="l00883"></a>00883             std::swap(my_maximum_bucket_size, right.my_maximum_bucket_size);
<a name="l00884"></a>00884         }
<a name="l00885"></a>00885     }
<a name="l00886"></a>00886 
<a name="l00887"></a>00887     <span class="comment">// Observers</span>
<a name="l00888"></a>00888     <span class="keywordtype">void</span> clear() {
<a name="l00889"></a>00889         <span class="comment">// Clear list</span>
<a name="l00890"></a>00890         my_solist.clear();
<a name="l00891"></a>00891 
<a name="l00892"></a>00892         <span class="comment">// Clear buckets</span>
<a name="l00893"></a>00893         internal_clear();
<a name="l00894"></a>00894     }
<a name="l00895"></a>00895 
<a name="l00896"></a>00896     <span class="comment">// Lookup</span>
<a name="l00897"></a>00897     iterator find(<span class="keyword">const</span> key_type&amp; key) {
<a name="l00898"></a>00898         <span class="keywordflow">return</span> internal_find(key);
<a name="l00899"></a>00899     }
<a name="l00900"></a>00900 
<a name="l00901"></a>00901     const_iterator find(<span class="keyword">const</span> key_type&amp; key)<span class="keyword"> const </span>{
<a name="l00902"></a>00902         <span class="keywordflow">return</span> const_cast&lt;self_type*&gt;(<span class="keyword">this</span>)-&gt;internal_find(key);
<a name="l00903"></a>00903     }
<a name="l00904"></a>00904 
<a name="l00905"></a>00905     size_type count(<span class="keyword">const</span> key_type&amp; key)<span class="keyword"> const </span>{
<a name="l00906"></a>00906         paircc_t answer = equal_range(key);
<a name="l00907"></a>00907         size_type item_count = internal_distance(answer.first, answer.second);
<a name="l00908"></a>00908         <span class="keywordflow">return</span> item_count;
<a name="l00909"></a>00909     }
<a name="l00910"></a>00910 
<a name="l00911"></a>00911     std::pair&lt;iterator, iterator&gt; equal_range(<span class="keyword">const</span> key_type&amp; key) {
<a name="l00912"></a>00912         <span class="keywordflow">return</span> internal_equal_range(key);
<a name="l00913"></a>00913     }
<a name="l00914"></a>00914 
<a name="l00915"></a>00915     std::pair&lt;const_iterator, const_iterator&gt; equal_range(<span class="keyword">const</span> key_type&amp; key)<span class="keyword"> const </span>{
<a name="l00916"></a>00916         <span class="keywordflow">return</span> internal_equal_range(key);
<a name="l00917"></a>00917     }
<a name="l00918"></a>00918 
<a name="l00919"></a>00919     <span class="comment">// Bucket interface - for debugging </span>
<a name="l00920"></a>00920     size_type unsafe_bucket_count()<span class="keyword"> const </span>{
<a name="l00921"></a>00921         <span class="keywordflow">return</span> my_number_of_buckets;
<a name="l00922"></a>00922     }
<a name="l00923"></a>00923 
<a name="l00924"></a>00924     size_type unsafe_max_bucket_count()<span class="keyword"> const </span>{
<a name="l00925"></a>00925         <span class="keywordflow">return</span> segment_size(pointers_per_table-1);
<a name="l00926"></a>00926     }
<a name="l00927"></a>00927 
<a name="l00928"></a>00928     size_type unsafe_bucket_size(size_type bucket) {
<a name="l00929"></a>00929         size_type item_count = 0;
<a name="l00930"></a>00930         <span class="keywordflow">if</span> (is_initialized(bucket)) {
<a name="l00931"></a>00931             raw_iterator it = get_bucket(bucket);
<a name="l00932"></a>00932             ++it;
<a name="l00933"></a>00933             <span class="keywordflow">for</span> (; it != my_solist.raw_end() &amp;&amp; !it.get_node_ptr()-&gt;is_dummy(); ++it)
<a name="l00934"></a>00934                 ++item_count;
<a name="l00935"></a>00935         }
<a name="l00936"></a>00936         <span class="keywordflow">return</span> item_count;
<a name="l00937"></a>00937     }
<a name="l00938"></a>00938 
<a name="l00939"></a>00939     size_type unsafe_bucket(<span class="keyword">const</span> key_type&amp; key)<span class="keyword"> const </span>{
<a name="l00940"></a>00940         sokey_t order_key = (sokey_t) my_hash_compare(key);
<a name="l00941"></a>00941         size_type bucket = order_key % my_number_of_buckets;
<a name="l00942"></a>00942         <span class="keywordflow">return</span> bucket;
<a name="l00943"></a>00943     }
<a name="l00944"></a>00944 
<a name="l00945"></a>00945     <span class="comment">// If the bucket is initialized, return a first non-dummy element in it</span>
<a name="l00946"></a>00946     local_iterator unsafe_begin(size_type bucket) {
<a name="l00947"></a>00947         <span class="keywordflow">if</span> (!is_initialized(bucket))
<a name="l00948"></a>00948             <span class="keywordflow">return</span> end();
<a name="l00949"></a>00949 
<a name="l00950"></a>00950         raw_iterator it = get_bucket(bucket);
<a name="l00951"></a>00951         <span class="keywordflow">return</span> my_solist.first_real_iterator(it);
<a name="l00952"></a>00952     }
<a name="l00953"></a>00953 
<a name="l00954"></a>00954     <span class="comment">// If the bucket is initialized, return a first non-dummy element in it</span>
<a name="l00955"></a>00955     const_local_iterator unsafe_begin(size_type bucket)<span class="keyword"> const</span>
<a name="l00956"></a>00956 <span class="keyword">    </span>{
<a name="l00957"></a>00957         <span class="keywordflow">if</span> (!is_initialized(bucket))
<a name="l00958"></a>00958             <span class="keywordflow">return</span> end();
<a name="l00959"></a>00959 
<a name="l00960"></a>00960         raw_const_iterator it = get_bucket(bucket);
<a name="l00961"></a>00961         <span class="keywordflow">return</span> my_solist.first_real_iterator(it);
<a name="l00962"></a>00962     }
<a name="l00963"></a>00963 
<a name="l00964"></a>00964     <span class="comment">// @REVIEW: Takes O(n)</span>
<a name="l00965"></a>00965     <span class="comment">// Returns the iterator after the last non-dummy element in the bucket</span>
<a name="l00966"></a>00966     local_iterator unsafe_end(size_type bucket)
<a name="l00967"></a>00967     {
<a name="l00968"></a>00968         <span class="keywordflow">if</span> (!is_initialized(bucket))
<a name="l00969"></a>00969             <span class="keywordflow">return</span> end();
<a name="l00970"></a>00970 
<a name="l00971"></a>00971         raw_iterator it = get_bucket(bucket);
<a name="l00972"></a>00972     
<a name="l00973"></a>00973         <span class="comment">// Find the end of the bucket, denoted by the dummy element</span>
<a name="l00974"></a>00974         <span class="keywordflow">do</span> ++it;
<a name="l00975"></a>00975         <span class="keywordflow">while</span>(it != my_solist.raw_end() &amp;&amp; !it.get_node_ptr()-&gt;is_dummy());
<a name="l00976"></a>00976 
<a name="l00977"></a>00977         <span class="comment">// Return the first real element past the end of the bucket</span>
<a name="l00978"></a>00978         <span class="keywordflow">return</span> my_solist.first_real_iterator(it);
<a name="l00979"></a>00979     }
<a name="l00980"></a>00980 
<a name="l00981"></a>00981     <span class="comment">// @REVIEW: Takes O(n)</span>
<a name="l00982"></a>00982     <span class="comment">// Returns the iterator after the last non-dummy element in the bucket</span>
<a name="l00983"></a>00983     const_local_iterator unsafe_end(size_type bucket)<span class="keyword"> const</span>
<a name="l00984"></a>00984 <span class="keyword">    </span>{
<a name="l00985"></a>00985         <span class="keywordflow">if</span> (!is_initialized(bucket))
<a name="l00986"></a>00986             <span class="keywordflow">return</span> end();
<a name="l00987"></a>00987 
<a name="l00988"></a>00988         raw_const_iterator it = get_bucket(bucket);
<a name="l00989"></a>00989     
<a name="l00990"></a>00990         <span class="comment">// Find the end of the bucket, denoted by the dummy element</span>
<a name="l00991"></a>00991         <span class="keywordflow">do</span> ++it;
<a name="l00992"></a>00992         <span class="keywordflow">while</span>(it != my_solist.raw_end() &amp;&amp; !it.get_node_ptr()-&gt;is_dummy());
<a name="l00993"></a>00993 
<a name="l00994"></a>00994         <span class="comment">// Return the first real element past the end of the bucket</span>
<a name="l00995"></a>00995         <span class="keywordflow">return</span> my_solist.first_real_iterator(it);
<a name="l00996"></a>00996     }
<a name="l00997"></a>00997 
<a name="l00998"></a>00998     const_local_iterator unsafe_cbegin(size_type bucket)<span class="keyword"> const </span>{
<a name="l00999"></a>00999         <span class="keywordflow">return</span> ((<span class="keyword">const</span> self_type *) <span class="keyword">this</span>)-&gt;begin();
<a name="l01000"></a>01000     }
<a name="l01001"></a>01001 
<a name="l01002"></a>01002     const_local_iterator unsafe_cend(size_type bucket)<span class="keyword"> const </span>{
<a name="l01003"></a>01003         <span class="keywordflow">return</span> ((<span class="keyword">const</span> self_type *) <span class="keyword">this</span>)-&gt;end();
<a name="l01004"></a>01004     }
<a name="l01005"></a>01005 
<a name="l01006"></a>01006     <span class="comment">// Hash policy</span>
<a name="l01007"></a>01007     <span class="keywordtype">float</span> load_factor()<span class="keyword"> const </span>{
<a name="l01008"></a>01008         <span class="keywordflow">return</span> (<span class="keywordtype">float</span>) size() / (float) unsafe_bucket_count();
<a name="l01009"></a>01009     }
<a name="l01010"></a>01010 
<a name="l01011"></a>01011     <span class="keywordtype">float</span> max_load_factor()<span class="keyword"> const </span>{
<a name="l01012"></a>01012         <span class="keywordflow">return</span> my_maximum_bucket_size;
<a name="l01013"></a>01013     }
<a name="l01014"></a>01014 
<a name="l01015"></a>01015     <span class="keywordtype">void</span> max_load_factor(<span class="keywordtype">float</span> newmax) {
<a name="l01016"></a>01016         <span class="keywordflow">if</span> (newmax != newmax || newmax &lt; 0)
<a name="l01017"></a>01017             tbb::internal::throw_exception(tbb::internal::eid_invalid_load_factor);
<a name="l01018"></a>01018         my_maximum_bucket_size = newmax;
<a name="l01019"></a>01019     }
<a name="l01020"></a>01020 
<a name="l01021"></a>01021     <span class="comment">// This function is a noop, because the underlying split-ordered list</span>
<a name="l01022"></a>01022     <span class="comment">// is already sorted, so an increase in the bucket number will be</span>
<a name="l01023"></a>01023     <span class="comment">// reflected next time this bucket is touched.</span>
<a name="l01024"></a>01024     <span class="keywordtype">void</span> rehash(size_type buckets) {
<a name="l01025"></a>01025         size_type current_buckets = my_number_of_buckets;
<a name="l01026"></a>01026 
<a name="l01027"></a>01027         <span class="keywordflow">if</span> (current_buckets &gt; buckets)
<a name="l01028"></a>01028             <span class="keywordflow">return</span>;
<a name="l01029"></a>01029         <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( (buckets &amp; (buckets-1)) != 0 )
<a name="l01030"></a>01030             tbb::internal::throw_exception(tbb::internal::eid_invalid_buckets_number);
<a name="l01031"></a>01031         my_number_of_buckets = buckets;
<a name="l01032"></a>01032     }
<a name="l01033"></a>01033 
<a name="l01034"></a>01034 <span class="keyword">private</span>:
<a name="l01035"></a>01035 
<a name="l01036"></a>01036     <span class="comment">// Initialize the hash and keep the first bucket open</span>
<a name="l01037"></a>01037     <span class="keywordtype">void</span> internal_init() {
<a name="l01038"></a>01038         <span class="comment">// Allocate an array of segment pointers</span>
<a name="l01039"></a>01039         memset(my_buckets, 0, pointers_per_table * <span class="keyword">sizeof</span>(<span class="keywordtype">void</span> *));
<a name="l01040"></a>01040 
<a name="l01041"></a>01041         <span class="comment">// Insert the first element in the split-ordered list</span>
<a name="l01042"></a>01042         raw_iterator dummy_node = my_solist.raw_begin();
<a name="l01043"></a>01043         set_bucket(0, dummy_node);
<a name="l01044"></a>01044     }
<a name="l01045"></a>01045 
<a name="l01046"></a>01046     <span class="keywordtype">void</span> internal_clear() {
<a name="l01047"></a>01047         <span class="keywordflow">for</span> (size_type index = 0; index &lt; pointers_per_table; ++index) {
<a name="l01048"></a>01048             <span class="keywordflow">if</span> (my_buckets[index] != NULL) {
<a name="l01049"></a>01049                 size_type sz = segment_size(index);
<a name="l01050"></a>01050                 <span class="keywordflow">for</span> (size_type index2 = 0; index2 &lt; sz; ++index2)
<a name="l01051"></a>01051                     my_allocator.destroy(&amp;my_buckets[index][index2]);
<a name="l01052"></a>01052                 my_allocator.deallocate(my_buckets[index], sz);
<a name="l01053"></a>01053                 my_buckets[index] = 0;
<a name="l01054"></a>01054             }
<a name="l01055"></a>01055         }
<a name="l01056"></a>01056     }
<a name="l01057"></a>01057 
<a name="l01058"></a>01058     <span class="keywordtype">void</span> internal_copy(<span class="keyword">const</span> self_type&amp; right) {
<a name="l01059"></a>01059         clear();
<a name="l01060"></a>01060 
<a name="l01061"></a>01061         my_maximum_bucket_size = right.my_maximum_bucket_size;
<a name="l01062"></a>01062         my_number_of_buckets = right.my_number_of_buckets;
<a name="l01063"></a>01063 
<a name="l01064"></a>01064         __TBB_TRY {
<a name="l01065"></a>01065             insert(right.begin(), right.end());
<a name="l01066"></a>01066             my_hash_compare = right.my_hash_compare;
<a name="l01067"></a>01067         } __TBB_CATCH(...) {
<a name="l01068"></a>01068             my_solist.clear();
<a name="l01069"></a>01069             __TBB_RETHROW();
<a name="l01070"></a>01070         }
<a name="l01071"></a>01071     }
<a name="l01072"></a>01072 
<a name="l01073"></a>01073     <span class="keywordtype">void</span> internal_swap_buckets(concurrent_unordered_base&amp; right)
<a name="l01074"></a>01074     {
<a name="l01075"></a>01075         <span class="comment">// Swap all node segments</span>
<a name="l01076"></a>01076         <span class="keywordflow">for</span> (size_type index = 0; index &lt; pointers_per_table; ++index)
<a name="l01077"></a>01077         {
<a name="l01078"></a>01078             raw_iterator * iterator_pointer = my_buckets[index];
<a name="l01079"></a>01079             my_buckets[index] = right.my_buckets[index];
<a name="l01080"></a>01080             right.my_buckets[index] = iterator_pointer;
<a name="l01081"></a>01081         }
<a name="l01082"></a>01082     }
<a name="l01083"></a>01083 
<a name="l01084"></a>01084     <span class="comment">// Hash APIs</span>
<a name="l01085"></a>01085     size_type internal_distance(const_iterator first, const_iterator last)<span class="keyword"> const</span>
<a name="l01086"></a>01086 <span class="keyword">    </span>{
<a name="l01087"></a>01087         size_type num = 0;
<a name="l01088"></a>01088 
<a name="l01089"></a>01089         <span class="keywordflow">for</span> (const_iterator it = first; it != last; ++it)
<a name="l01090"></a>01090             ++num;
<a name="l01091"></a>01091 
<a name="l01092"></a>01092         <span class="keywordflow">return</span> num;
<a name="l01093"></a>01093     }
<a name="l01094"></a>01094 
<a name="l01095"></a>01095     <span class="comment">// Insert an element in the hash given its value</span>
<a name="l01096"></a>01096     std::pair&lt;iterator, bool&gt; internal_insert(<span class="keyword">const</span> value_type&amp; value)
<a name="l01097"></a>01097     {
<a name="l01098"></a>01098         sokey_t order_key = (sokey_t) my_hash_compare(get_key(value));
<a name="l01099"></a>01099         size_type bucket = order_key % my_number_of_buckets;
<a name="l01100"></a>01100 
<a name="l01101"></a>01101         <span class="comment">// If bucket is empty, initialize it first</span>
<a name="l01102"></a>01102         <span class="keywordflow">if</span> (!is_initialized(bucket))
<a name="l01103"></a>01103             init_bucket(bucket);
<a name="l01104"></a>01104 
<a name="l01105"></a>01105         size_type new_count;
<a name="l01106"></a>01106         order_key = split_order_key_regular(order_key);
<a name="l01107"></a>01107         raw_iterator it = get_bucket(bucket);
<a name="l01108"></a>01108         raw_iterator last = my_solist.raw_end();
<a name="l01109"></a>01109         raw_iterator where = it;
<a name="l01110"></a>01110 
<a name="l01111"></a>01111         __TBB_ASSERT(where != last, <span class="stringliteral">"Invalid head node"</span>);
<a name="l01112"></a>01112 
<a name="l01113"></a>01113         <span class="comment">// First node is a dummy node</span>
<a name="l01114"></a>01114         ++where;
<a name="l01115"></a>01115 
<a name="l01116"></a>01116         <span class="keywordflow">for</span> (;;)
<a name="l01117"></a>01117         {
<a name="l01118"></a>01118             <span class="keywordflow">if</span> (where == last || solist_t::get_order_key(where) &gt; order_key)
<a name="l01119"></a>01119             {
<a name="l01120"></a>01120                 <span class="comment">// Try to insert it in the right place</span>
<a name="l01121"></a>01121                 std::pair&lt;iterator, bool&gt; result = my_solist.try_insert(it, where, value, order_key, &amp;new_count);
<a name="l01122"></a>01122                 
<a name="l01123"></a>01123                 <span class="keywordflow">if</span> (result.second)
<a name="l01124"></a>01124                 {
<a name="l01125"></a>01125                     <span class="comment">// Insertion succeeded, adjust the table size, if needed</span>
<a name="l01126"></a>01126                     adjust_table_size(new_count, my_number_of_buckets);
<a name="l01127"></a>01127                     <span class="keywordflow">return</span> result;
<a name="l01128"></a>01128                 }
<a name="l01129"></a>01129                 <span class="keywordflow">else</span>
<a name="l01130"></a>01130                 {
<a name="l01131"></a>01131                     <span class="comment">// Insertion failed: either the same node was inserted by another thread, or</span>
<a name="l01132"></a>01132                     <span class="comment">// another element was inserted at exactly the same place as this node.</span>
<a name="l01133"></a>01133                     <span class="comment">// Proceed with the search from the previous location where order key was</span>
<a name="l01134"></a>01134                     <span class="comment">// known to be larger (note: this is legal only because there is no safe</span>
<a name="l01135"></a>01135                     <span class="comment">// concurrent erase operation supported).</span>
<a name="l01136"></a>01136                     where = it;
<a name="l01137"></a>01137                     ++where;
<a name="l01138"></a>01138                     <span class="keywordflow">continue</span>;
<a name="l01139"></a>01139                 }
<a name="l01140"></a>01140             }
<a name="l01141"></a>01141             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!allow_multimapping &amp;&amp; solist_t::get_order_key(where) == order_key &amp;&amp; my_hash_compare(get_key(*where), get_key(value)) == 0)
<a name="l01142"></a>01142             {
<a name="l01143"></a>01143                 <span class="comment">// Element already in the list, return it</span>
<a name="l01144"></a>01144                 <span class="keywordflow">return</span> std::pair&lt;iterator, bool&gt;(my_solist.get_iterator(where), <span class="keyword">false</span>);
<a name="l01145"></a>01145             }
<a name="l01146"></a>01146 
<a name="l01147"></a>01147             <span class="comment">// Move the iterator forward</span>
<a name="l01148"></a>01148             it = where;
<a name="l01149"></a>01149             ++where;
<a name="l01150"></a>01150         }
<a name="l01151"></a>01151     }
<a name="l01152"></a>01152 
<a name="l01153"></a>01153     <span class="comment">// Find the element in the split-ordered list</span>
<a name="l01154"></a>01154     iterator internal_find(<span class="keyword">const</span> key_type&amp; key)
<a name="l01155"></a>01155     {
<a name="l01156"></a>01156         sokey_t order_key = (sokey_t) my_hash_compare(key);
<a name="l01157"></a>01157         size_type bucket = order_key % my_number_of_buckets;
<a name="l01158"></a>01158 
<a name="l01159"></a>01159         <span class="comment">// If bucket is empty, initialize it first</span>
<a name="l01160"></a>01160         <span class="keywordflow">if</span> (!is_initialized(bucket))
<a name="l01161"></a>01161             init_bucket(bucket);
<a name="l01162"></a>01162 
<a name="l01163"></a>01163         order_key = split_order_key_regular(order_key);
<a name="l01164"></a>01164         raw_iterator last = my_solist.raw_end();
<a name="l01165"></a>01165 
<a name="l01166"></a>01166         <span class="keywordflow">for</span> (raw_iterator it = get_bucket(bucket); it != last; ++it)
<a name="l01167"></a>01167         {
<a name="l01168"></a>01168             <span class="keywordflow">if</span> (solist_t::get_order_key(it) &gt; order_key)
<a name="l01169"></a>01169             {
<a name="l01170"></a>01170                 <span class="comment">// If the order key is smaller than the current order key, the element</span>
<a name="l01171"></a>01171                 <span class="comment">// is not in the hash.</span>
<a name="l01172"></a>01172                 <span class="keywordflow">return</span> end();
<a name="l01173"></a>01173             }
<a name="l01174"></a>01174             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (solist_t::get_order_key(it) == order_key)
<a name="l01175"></a>01175             {
<a name="l01176"></a>01176                 <span class="comment">// The fact that order keys match does not mean that the element is found.</span>
<a name="l01177"></a>01177                 <span class="comment">// Key function comparison has to be performed to check whether this is the</span>
<a name="l01178"></a>01178                 <span class="comment">// right element. If not, keep searching while order key is the same.</span>
<a name="l01179"></a>01179                 <span class="keywordflow">if</span> (!my_hash_compare(get_key(*it), key))
<a name="l01180"></a>01180                     <span class="keywordflow">return</span> my_solist.get_iterator(it);
<a name="l01181"></a>01181             }
<a name="l01182"></a>01182         }
<a name="l01183"></a>01183 
<a name="l01184"></a>01184         <span class="keywordflow">return</span> end();
<a name="l01185"></a>01185     }
<a name="l01186"></a>01186 
<a name="l01187"></a>01187     <span class="comment">// Erase an element from the list. This is not a concurrency safe function.</span>
<a name="l01188"></a>01188     iterator internal_erase(const_iterator it)
<a name="l01189"></a>01189     {
<a name="l01190"></a>01190         key_type key = get_key(*it);
<a name="l01191"></a>01191         sokey_t order_key = (sokey_t) my_hash_compare(key);
<a name="l01192"></a>01192         size_type bucket = order_key % my_number_of_buckets;
<a name="l01193"></a>01193 
<a name="l01194"></a>01194         <span class="comment">// If bucket is empty, initialize it first</span>
<a name="l01195"></a>01195         <span class="keywordflow">if</span> (!is_initialized(bucket))
<a name="l01196"></a>01196             init_bucket(bucket);
<a name="l01197"></a>01197 
<a name="l01198"></a>01198         order_key = split_order_key_regular(order_key);
<a name="l01199"></a>01199 
<a name="l01200"></a>01200         raw_iterator previous = get_bucket(bucket);
<a name="l01201"></a>01201         raw_iterator last = my_solist.raw_end();
<a name="l01202"></a>01202         raw_iterator where = previous;
<a name="l01203"></a>01203 
<a name="l01204"></a>01204         __TBB_ASSERT(where != last, <span class="stringliteral">"Invalid head node"</span>);
<a name="l01205"></a>01205 
<a name="l01206"></a>01206         <span class="comment">// First node is a dummy node</span>
<a name="l01207"></a>01207         ++where;
<a name="l01208"></a>01208 
<a name="l01209"></a>01209         <span class="keywordflow">for</span> (;;) {
<a name="l01210"></a>01210             <span class="keywordflow">if</span> (where == last)
<a name="l01211"></a>01211                 <span class="keywordflow">return</span> end();
<a name="l01212"></a>01212             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (my_solist.get_iterator(where) == it)
<a name="l01213"></a>01213                 <span class="keywordflow">return</span> my_solist.erase_node(previous, it);
<a name="l01214"></a>01214 
<a name="l01215"></a>01215             <span class="comment">// Move the iterator forward</span>
<a name="l01216"></a>01216             previous = where;
<a name="l01217"></a>01217             ++where;
<a name="l01218"></a>01218         }
<a name="l01219"></a>01219     }
<a name="l01220"></a>01220 
<a name="l01221"></a>01221     <span class="comment">// Return the [begin, end) pair of iterators with the same key values.</span>
<a name="l01222"></a>01222     <span class="comment">// This operation makes sense only if mapping is many-to-one.</span>
<a name="l01223"></a>01223     pairii_t internal_equal_range(<span class="keyword">const</span> key_type&amp; key)
<a name="l01224"></a>01224     {
<a name="l01225"></a>01225         sokey_t order_key = (sokey_t) my_hash_compare(key);
<a name="l01226"></a>01226         size_type bucket = order_key % my_number_of_buckets;
<a name="l01227"></a>01227 
<a name="l01228"></a>01228         <span class="comment">// If bucket is empty, initialize it first</span>
<a name="l01229"></a>01229         <span class="keywordflow">if</span> (!is_initialized(bucket))
<a name="l01230"></a>01230             init_bucket(bucket);
<a name="l01231"></a>01231 
<a name="l01232"></a>01232         order_key = split_order_key_regular(order_key);
<a name="l01233"></a>01233         raw_iterator end_it = my_solist.raw_end();
<a name="l01234"></a>01234 
<a name="l01235"></a>01235         <span class="keywordflow">for</span> (raw_iterator it = get_bucket(bucket); it != end_it; ++it)
<a name="l01236"></a>01236         {
<a name="l01237"></a>01237             <span class="keywordflow">if</span> (solist_t::get_order_key(it) &gt; order_key)
<a name="l01238"></a>01238             {
<a name="l01239"></a>01239                 <span class="comment">// There is no element with the given key</span>
<a name="l01240"></a>01240                 <span class="keywordflow">return</span> pairii_t(end(), end());
<a name="l01241"></a>01241             }
<a name="l01242"></a>01242             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (solist_t::get_order_key(it) == order_key &amp;&amp; !my_hash_compare(get_key(*it), key))
<a name="l01243"></a>01243             {
<a name="l01244"></a>01244                 iterator first = my_solist.get_iterator(it);
<a name="l01245"></a>01245                 iterator last = first;
<a name="l01246"></a>01246 
<a name="l01247"></a>01247                 <span class="keywordflow">while</span>( last != end() &amp;&amp; !my_hash_compare(get_key(*last), key) )
<a name="l01248"></a>01248                     ++last;
<a name="l01249"></a>01249                 <span class="keywordflow">return</span> pairii_t(first, last);
<a name="l01250"></a>01250             }
<a name="l01251"></a>01251         }
<a name="l01252"></a>01252 
<a name="l01253"></a>01253         <span class="keywordflow">return</span> pairii_t(end(), end());
<a name="l01254"></a>01254     }
<a name="l01255"></a>01255 
<a name="l01256"></a>01256     <span class="comment">// Return the [begin, end) pair of const iterators with the same key values.</span>
<a name="l01257"></a>01257     <span class="comment">// This operation makes sense only if mapping is many-to-one.</span>
<a name="l01258"></a>01258     paircc_t internal_equal_range(<span class="keyword">const</span> key_type&amp; key)<span class="keyword"> const</span>
<a name="l01259"></a>01259 <span class="keyword">    </span>{
<a name="l01260"></a>01260         sokey_t order_key = (sokey_t) my_hash_compare(key);
<a name="l01261"></a>01261         size_type bucket = order_key % my_number_of_buckets;
<a name="l01262"></a>01262 
<a name="l01263"></a>01263         <span class="comment">// If bucket is empty, initialize it first</span>
<a name="l01264"></a>01264         <span class="keywordflow">if</span> (!is_initialized(bucket))
<a name="l01265"></a>01265             <span class="keywordflow">return</span> paircc_t(end(), end());
<a name="l01266"></a>01266 
<a name="l01267"></a>01267         order_key = split_order_key_regular(order_key);
<a name="l01268"></a>01268         raw_const_iterator end_it = my_solist.raw_end();
<a name="l01269"></a>01269 
<a name="l01270"></a>01270         <span class="keywordflow">for</span> (raw_const_iterator it = get_bucket(bucket); it != end_it; ++it)
<a name="l01271"></a>01271         {
<a name="l01272"></a>01272             <span class="keywordflow">if</span> (solist_t::get_order_key(it) &gt; order_key)
<a name="l01273"></a>01273             {
<a name="l01274"></a>01274                 <span class="comment">// There is no element with the given key</span>
<a name="l01275"></a>01275                 <span class="keywordflow">return</span> paircc_t(end(), end());
<a name="l01276"></a>01276             }
<a name="l01277"></a>01277             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (solist_t::get_order_key(it) == order_key &amp;&amp; !my_hash_compare(get_key(*it), key))
<a name="l01278"></a>01278             {
<a name="l01279"></a>01279                 const_iterator first = my_solist.get_iterator(it);
<a name="l01280"></a>01280                 const_iterator last = first;
<a name="l01281"></a>01281 
<a name="l01282"></a>01282                 <span class="keywordflow">while</span>( last != end() &amp;&amp; !my_hash_compare(get_key(*last), key ) )
<a name="l01283"></a>01283                     ++last;
<a name="l01284"></a>01284                 <span class="keywordflow">return</span> paircc_t(first, last);
<a name="l01285"></a>01285             }
<a name="l01286"></a>01286         }
<a name="l01287"></a>01287 
<a name="l01288"></a>01288         <span class="keywordflow">return</span> paircc_t(end(), end());
<a name="l01289"></a>01289     }
<a name="l01290"></a>01290 
<a name="l01291"></a>01291     <span class="comment">// Bucket APIs</span>
<a name="l01292"></a>01292     <span class="keywordtype">void</span> init_bucket(size_type bucket)
<a name="l01293"></a>01293     {
<a name="l01294"></a>01294         <span class="comment">// Bucket 0 has no parent. Initialize it and return.</span>
<a name="l01295"></a>01295         <span class="keywordflow">if</span> (bucket == 0) {
<a name="l01296"></a>01296             internal_init();
<a name="l01297"></a>01297             <span class="keywordflow">return</span>;
<a name="l01298"></a>01298         }
<a name="l01299"></a>01299 
<a name="l01300"></a>01300         size_type parent_bucket = get_parent(bucket);
<a name="l01301"></a>01301 
<a name="l01302"></a>01302         <span class="comment">// All parent_bucket buckets have to be initialized before this bucket is</span>
<a name="l01303"></a>01303         <span class="keywordflow">if</span> (!is_initialized(parent_bucket))
<a name="l01304"></a>01304             init_bucket(parent_bucket);
<a name="l01305"></a>01305 
<a name="l01306"></a>01306         raw_iterator parent = get_bucket(parent_bucket);
<a name="l01307"></a>01307 
<a name="l01308"></a>01308         <span class="comment">// Create a dummy first node in this bucket</span>
<a name="l01309"></a>01309         raw_iterator dummy_node = my_solist.insert_dummy(parent, split_order_key_dummy(bucket));
<a name="l01310"></a>01310         set_bucket(bucket, dummy_node);
<a name="l01311"></a>01311     }
<a name="l01312"></a>01312 
<a name="l01313"></a>01313     <span class="keywordtype">void</span> adjust_table_size(size_type total_elements, size_type current_size)
<a name="l01314"></a>01314     {
<a name="l01315"></a>01315         <span class="comment">// Grow the table by a factor of 2 if possible and needed</span>
<a name="l01316"></a>01316         <span class="keywordflow">if</span> ( ((<span class="keywordtype">float</span>) total_elements / (<span class="keywordtype">float</span>) current_size) &gt; my_maximum_bucket_size )
<a name="l01317"></a>01317         {
<a name="l01318"></a>01318              <span class="comment">// Double the size of the hash only if size has not changed inbetween loads</span>
<a name="l01319"></a>01319             __TBB_CompareAndSwapW((uintptr_t*)&amp;my_number_of_buckets, 2 * current_size, current_size );
<a name="l01320"></a>01320         }
<a name="l01321"></a>01321     }
<a name="l01322"></a>01322 
<a name="l01323"></a>01323     size_type get_parent(size_type bucket)<span class="keyword"> const</span>
<a name="l01324"></a>01324 <span class="keyword">    </span>{
<a name="l01325"></a>01325         <span class="comment">// Unsets bucket's most significant turned-on bit</span>
<a name="l01326"></a>01326         size_type msb = __TBB_Log2((uintptr_t)bucket);
<a name="l01327"></a>01327         <span class="keywordflow">return</span> bucket &amp; ~(size_type(1) &lt;&lt; msb);
<a name="l01328"></a>01328     }
<a name="l01329"></a>01329 
<a name="l01330"></a>01330 
<a name="l01331"></a>01331     <span class="comment">// Dynamic sized array (segments)</span>
<a name="l01333"></a>01333 <span class="comment"></span>    <span class="keyword">static</span> size_type segment_index_of( size_type index ) {
<a name="l01334"></a>01334         <span class="keywordflow">return</span> size_type( __TBB_Log2( index|1 ) );
<a name="l01335"></a>01335     }
<a name="l01336"></a>01336 
<a name="l01338"></a>01338     <span class="keyword">static</span> size_type segment_base( size_type k ) {
<a name="l01339"></a>01339         <span class="keywordflow">return</span> (size_type(1)&lt;&lt;k &amp; ~size_type(1));
<a name="l01340"></a>01340     }
<a name="l01341"></a>01341 
<a name="l01343"></a>01343     <span class="keyword">static</span> size_type segment_size( size_type k ) {
<a name="l01344"></a>01344         <span class="keywordflow">return</span> k? size_type(1)&lt;&lt;k : 2;
<a name="l01345"></a>01345     }
<a name="l01346"></a>01346 
<a name="l01347"></a>01347     raw_iterator get_bucket(size_type bucket)<span class="keyword"> const </span>{
<a name="l01348"></a>01348         size_type segment = segment_index_of(bucket);
<a name="l01349"></a>01349         bucket -= segment_base(segment);
<a name="l01350"></a>01350         __TBB_ASSERT( my_buckets[segment], <span class="stringliteral">"bucket must be in an allocated segment"</span> );
<a name="l01351"></a>01351         <span class="keywordflow">return</span> my_buckets[segment][bucket];
<a name="l01352"></a>01352     }
<a name="l01353"></a>01353 
<a name="l01354"></a>01354     <span class="keywordtype">void</span> set_bucket(size_type bucket, raw_iterator dummy_head) {
<a name="l01355"></a>01355         size_type segment = segment_index_of(bucket);
<a name="l01356"></a>01356         bucket -= segment_base(segment);
<a name="l01357"></a>01357 
<a name="l01358"></a>01358         <span class="keywordflow">if</span> (my_buckets[segment] == NULL) {
<a name="l01359"></a>01359             size_type sz = segment_size(segment);
<a name="l01360"></a>01360             raw_iterator * new_segment = my_allocator.allocate(sz);
<a name="l01361"></a>01361             std::memset(new_segment, 0, sz*<span class="keyword">sizeof</span>(raw_iterator));
<a name="l01362"></a>01362 
<a name="l01363"></a>01363             <span class="keywordflow">if</span> (__TBB_CompareAndSwapW((<span class="keywordtype">void</span> *) &amp;my_buckets[segment], (uintptr_t)new_segment, 0) != 0)
<a name="l01364"></a>01364                 my_allocator.deallocate(new_segment, sz);
<a name="l01365"></a>01365         }
<a name="l01366"></a>01366 
<a name="l01367"></a>01367         my_buckets[segment][bucket] = dummy_head;
<a name="l01368"></a>01368     }
<a name="l01369"></a>01369 
<a name="l01370"></a>01370     <span class="keywordtype">bool</span> is_initialized(size_type bucket)<span class="keyword"> const </span>{
<a name="l01371"></a>01371         size_type segment = segment_index_of(bucket);
<a name="l01372"></a>01372         bucket -= segment_base(segment);
<a name="l01373"></a>01373 
<a name="l01374"></a>01374         <span class="keywordflow">if</span> (my_buckets[segment] == NULL)
<a name="l01375"></a>01375             <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l01376"></a>01376 
<a name="l01377"></a>01377         raw_iterator it = my_buckets[segment][bucket];
<a name="l01378"></a>01378         <span class="keywordflow">return</span> (it.get_node_ptr() != NULL);
<a name="l01379"></a>01379     }
<a name="l01380"></a>01380 
<a name="l01381"></a>01381     <span class="comment">// Utilities for keys</span>
<a name="l01382"></a>01382 
<a name="l01383"></a>01383     <span class="comment">// A regular order key has its original hash value reversed and the last bit set</span>
<a name="l01384"></a>01384     sokey_t split_order_key_regular(sokey_t order_key)<span class="keyword"> const </span>{
<a name="l01385"></a>01385         <span class="keywordflow">return</span> __TBB_ReverseBits(order_key) | 0x1;
<a name="l01386"></a>01386     }
<a name="l01387"></a>01387 
<a name="l01388"></a>01388     <span class="comment">// A dummy order key has its original hash value reversed and the last bit unset</span>
<a name="l01389"></a>01389     sokey_t split_order_key_dummy(sokey_t order_key)<span class="keyword"> const </span>{
<a name="l01390"></a>01390         <span class="keywordflow">return</span> __TBB_ReverseBits(order_key) &amp; ~(0x1);
<a name="l01391"></a>01391     }
<a name="l01392"></a>01392 
<a name="l01393"></a>01393     <span class="comment">// Shared variables</span>
<a name="l01394"></a>01394     size_type                                                     my_number_of_buckets;       <span class="comment">// Current table size</span>
<a name="l01395"></a>01395     solist_t                                                      my_solist;                  <span class="comment">// List where all the elements are kept</span>
<a name="l01396"></a>01396     <span class="keyword">typename</span> allocator_type::template rebind&lt;raw_iterator&gt;::other my_allocator;               <span class="comment">// Allocator object for segments</span>
<a name="l01397"></a>01397     <span class="keywordtype">float</span>                                                         my_maximum_bucket_size;     <span class="comment">// Maximum size of the bucket</span>
<a name="l01398"></a>01398     raw_iterator                                                 *my_buckets[pointers_per_table]; <span class="comment">// The segment table</span>
<a name="l01399"></a>01399 };
<a name="l01400"></a>01400 <span class="preprocessor">#if _MSC_VER</span>
<a name="l01401"></a>01401 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop) // warning 4127 -- while (true) has a constant expression in it</span>
<a name="l01402"></a>01402 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l01403"></a>01403 <span class="preprocessor"></span>
<a name="l01405"></a>01405 <span class="keyword">static</span> <span class="keyword">const</span> size_t hash_multiplier = <span class="keyword">sizeof</span>(size_t)==4? 2654435769U : 11400714819323198485ULL;
<a name="l01406"></a>01406 } <span class="comment">// namespace internal</span>
<a name="l01409"></a>01409 <span class="comment"></span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
<a name="l01410"></a>01410 <span class="keyword">inline</span> size_t tbb_hasher( <span class="keyword">const</span> T&amp; t ) {
<a name="l01411"></a>01411     <span class="keywordflow">return</span> static_cast&lt;size_t&gt;( t ) * internal::hash_multiplier;
<a name="l01412"></a>01412 }
<a name="l01413"></a>01413 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> P&gt;
<a name="l01414"></a>01414 <span class="keyword">inline</span> size_t tbb_hasher( P* ptr ) {
<a name="l01415"></a>01415     size_t <span class="keyword">const</span> h = reinterpret_cast&lt;size_t&gt;( ptr );
<a name="l01416"></a>01416     <span class="keywordflow">return</span> (h &gt;&gt; 3) ^ h;
<a name="l01417"></a>01417 }
<a name="l01418"></a>01418 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> E, <span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;
<a name="l01419"></a>01419 <span class="keyword">inline</span> size_t tbb_hasher( <span class="keyword">const</span> std::basic_string&lt;E,S,A&gt;&amp; s ) {
<a name="l01420"></a>01420     size_t h = 0;
<a name="l01421"></a>01421     <span class="keywordflow">for</span>( <span class="keyword">const</span> E* c = s.c_str(); *c; ++c )
<a name="l01422"></a>01422         h = static_cast&lt;size_t&gt;(*c) ^ (h * internal::hash_multiplier);
<a name="l01423"></a>01423     <span class="keywordflow">return</span> h;
<a name="l01424"></a>01424 }
<a name="l01425"></a>01425 <span class="keyword">template</span>&lt;<span class="keyword">typename</span> F, <span class="keyword">typename</span> S&gt;
<a name="l01426"></a>01426 <span class="keyword">inline</span> size_t tbb_hasher( <span class="keyword">const</span> std::pair&lt;F,S&gt;&amp; p ) {
<a name="l01427"></a>01427     <span class="keywordflow">return</span> tbb_hasher(p.first) ^ tbb_hasher(p.second);
<a name="l01428"></a>01428 }
<a name="l01429"></a>01429 } <span class="comment">// namespace interface5</span>
<a name="l01430"></a>01430 <span class="keyword">using</span> interface5::tbb_hasher;
<a name="l01431"></a>01431 } <span class="comment">// namespace tbb</span>
<a name="l01432"></a>01432 <span class="preprocessor">#endif// __TBB_concurrent_unordered_internal_H</span>
</pre></div><hr>
<p></p>
Copyright &copy; 2005-2010 Intel Corporation.  All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
subsidiaries in the United States and other countries.
<p></p>
* Other names and brands may be claimed as the property of others.
