<html>#2762: The flesh is not thread safe
<table style='border-spacing: 1ex 0pt; '>
<tr><td style='text-align:right'> Reporter:</td><td>Steven R. Brandt</td></tr>
<tr><td style='text-align:right'> Status:</td><td>submitted</td></tr>
<tr><td style='text-align:right'>Milestone:</td><td>ET_2023_11</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>blocker</td></tr>
<tr><td style='text-align:right'>Component:</td><td>Cactus</td></tr>
</table>
<p>The flesh is not thread safe, and therefore CarpetX’s calling of functions through the flesh via openmp is broken. In particular, the function below The variable :<code>current_scheduled_function</code> is a global variable. </p>
<div class="codehilite"><pre><span></span><span>const cFunctionData *CCTK_ScheduleQueryCurrentFunction(const cGH * CCTK_ATTRIBUTE_UNUSED GH)</span>
<span>{</span>
<span> return current_scheduled_function;</span>
<span>}</span>
</pre></div>
<p>If one makes the following hackish edit (which I do not recommend) the problem goes away.</p>
<div class="codehilite"><pre><span></span><span class="n">db1</span><span class="w"> </span><span class="n">flesh</span><span>$</span><span class="w"> </span><span class="n">git</span><span class="w"> </span><span class="n">diff</span><span class="w"> </span><span class="n">src</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">ScheduleInterface</span><span class="p">.</span><span class="n">c</span><span class="o">|</span><span class="n">cat</span><span class="w"> </span><span class="o">-</span><span class="w"></span>
<span class="n">diff</span><span class="w"> </span><span class="c1">--git a/src/main/ScheduleInterface.c b/src/main/ScheduleInterface.c</span>
<span class="k">index</span><span class="w"> </span><span class="mi">93</span><span class="n">bdc20</span><span class="p">..</span><span class="n">c922904</span><span class="w"> </span><span class="mi">100644</span><span class="w"></span>
<span class="c1">--- a/src/main/ScheduleInterface.c</span>
<span class="o">+++</span><span class="w"> </span><span class="n">b</span><span class="o">/</span><span class="n">src</span><span class="o">/</span><span class="n">main</span><span class="o">/</span><span class="n">ScheduleInterface</span><span class="p">.</span><span class="n">c</span><span class="w"></span>
<span>@@</span><span class="w"> </span><span class="o">-</span><span class="mi">12</span><span class="p">,</span><span class="mi">6</span><span class="w"
<p>--<br/>
Ticket URL: <a href='https://bitbucket.org/einsteintoolkit/tickets/issues/2762/the-flesh-is-not-thread-safe'>https://bitbucket.org/einsteintoolkit/tickets/issues/2762/the-flesh-is-not-thread-safe</a></p>
</html>