From b86ba683d9e3d87b934db6cd2a06bcc0408ed4cc Mon Sep 17 00:00:00 2001
From: MichelJuillard <michel.juillard@mjui.fr>
Date: Wed, 6 Dec 2023 16:33:32 +0100
Subject: [PATCH] clang doesn't support jthread

---
 src/DynareMain.cc | 3 +--
 src/ModelTree.cc  | 5 +++--
 src/ModelTree.hh  | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/DynareMain.cc b/src/DynareMain.cc
index 4e9ff55a..8b0b6a45 100644
--- a/src/DynareMain.cc
+++ b/src/DynareMain.cc
@@ -509,8 +509,7 @@ main(int argc, char** argv)
     }
 
   if (mod_file->use_dll)
-    ModelTree::initializeMEXCompilationWorkers(max(jthread::hardware_concurrency(), 1U), dynareroot,
-                                               mexext);
+    ModelTree::initializeMEXCompilationWorkers(max(thread::hardware_concurrency(), 1U));
 
   if (json == JsonOutputPointType::parsing)
     mod_file->writeJsonOutput(basename, json, json_output_mode, onlyjson);
diff --git a/src/ModelTree.cc b/src/ModelTree.cc
index 41bed024..2e799765 100644
--- a/src/ModelTree.cc
+++ b/src/ModelTree.cc
@@ -46,7 +46,7 @@ mutex ModelTree::mex_compilation_mut;
 vector<tuple<filesystem::path, set<filesystem::path>, string>> ModelTree::mex_compilation_queue;
 set<filesystem::path> ModelTree::mex_compilation_ongoing, ModelTree::mex_compilation_done,
     ModelTree::mex_compilation_failed;
-vector<jthread> ModelTree::mex_compilation_workers;
+vector<thread> ModelTree::mex_compilation_workers;
 
 void
 ModelTree::copyHelper(const ModelTree& m)
@@ -1921,6 +1921,7 @@ void
 ModelTree::initializeMEXCompilationWorkers(int numworkers, const filesystem::path& dynareroot,
                                            const string& mexext)
 {
+  /*
   assert(numworkers > 0);
   assert(mex_compilation_workers.empty());
 
@@ -2012,7 +2013,7 @@ ModelTree::initializeMEXCompilationWorkers(int numworkers, const filesystem::pat
           exit(EXIT_FAILURE);
         }
     }
-#endif
+*/
 }
 
 void
diff --git a/src/ModelTree.hh b/src/ModelTree.hh
index 8d068593..72fcb700 100644
--- a/src/ModelTree.hh
+++ b/src/ModelTree.hh
@@ -433,7 +433,7 @@ private:
   vector<int> endo2eq;
 
   // Stores workers used for compiling MEX files in parallel
-  static vector<jthread> mex_compilation_workers;
+  static vector<thread> mex_compilation_workers;
 
   /* The following variables implement the thread synchronization mechanism for
      limiting the number of concurrent GCC processes and tracking dependencies
-- 
GitLab