#2762: The flesh is not thread safe
Reporter:Steven R. Brandt
Status:submitted
Milestone:ET_2023_11
Version:
Type:bug
Priority:blocker
Component:Cactus

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 :current_scheduled_function is a global variable.

const cFunctionData *CCTK_ScheduleQueryCurrentFunction(const cGH * CCTK_ATTRIBUTE_UNUSED GH)
{
  return current_scheduled_function;
}

If one makes the following hackish edit (which I do not recommend) the problem goes away.

db1 flesh$ git diff src/main/ScheduleInterface.c|cat -
diff --git a/src/main/ScheduleInterface.c b/src/main/ScheduleInterface.c
index 93bdc20..c922904 100644
--- a/src/main/ScheduleInterface.c
+++ b/src/main/ScheduleInterface.c
@@ -12,6--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2762/the-flesh-is-not-thread-safe