<html>#2832: possible race condition in LoopControl
<table style='border-spacing: 1ex 0pt; '>
<tr><td style='text-align:right'> Reporter:</td><td>Roland Haas</td></tr>
<tr><td style='text-align:right'>   Status:</td><td>new</td></tr>
<tr><td style='text-align:right'>Milestone:</td><td></td></tr>
<tr><td style='text-align:right'>  Version:</td><td></td></tr>
<tr><td style='text-align:right'>     Type:</td><td>bug</td></tr>
<tr><td style='text-align:right'> Priority:</td><td>major</td></tr>
<tr><td style='text-align:right'>Component:</td><td></td></tr>
</table>

<p>Comment (by Roland Haas):</p>
<p>Right, I was thinking of it but did not consider it as likely to pass the smell test. Namely: how to nicely combine that one with <code>std::vector</code>? Works fine to replace the naked <code>new</code> of course. For the <code>std::vector</code> one would use something like this:</p>
<div class="codehilite"><pre><span></span><code><span class="n">lc_fine_thread_comm_t</span> <span class="n">lc_fine_thread_comm</span> <span class="o">=</span> <span class="n">nulltpr</span><span class="p">;</span>

<span class="p">[...]</span>

<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">lc_fine_thread_comm</span><span class="p">)</span> <span>{</span>
  <span class="n">lc_fine_thread_comm</span> <span class="o">=</span> <span class="n">static_cast</span><span class="o"><</span><span class="n">lc_fine_thread_comm</span><span class="o">*></span><span class="p">(</span><span class="n">posix_memalign</span><span class="p">(</span><span class="n">n</span><span class="o">*</span><span class="n">sizeof</span><span class="p">(</span><span class="o">*</span><span class="n">lc_fine_thread_comm</span><span class="p">),</span> <span class="mi">128</span><span class="p">));</span>
  <span class="k">for</span><span class="p">(</span><span class="n">size_t</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span> <span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="n">n</span> <span class="p">;</span> <span class="o">++</span><span class="n">i</span><span class="p">)</span> <span>{</span>
    <span class="n">lc_fine_thread_comm_t</span><span class="o">*</span> <span class="n">ptr</span> <span class="o">=</span> <span class="k">new</span> <span class="p">(</span><span class="n">lc_fine_thread_comm</span><span class="o">+</span><span class="n">i</span><span class="p">)</span> <span class="n">lc_fine_thread_comm_t</span><span class="p">();</span>
    <span class="n">assert</span><span class="p">(</span><span class="n">ptr</span> 
<p>--<br/>
Ticket URL: <a href='https://bitbucket.org/einsteintoolkit/tickets/issues/2832/possible-race-condition-in-loopcontrol'>https://bitbucket.org/einsteintoolkit/tickets/issues/2832/possible-race-condition-in-loopcontrol</a></p>
</html>