#include <ucontext.h> /* context relative declarations */
+#include <atomic>
#include <cstdint>
#include <functional>
#include <vector>
ucontext_t uc_; /* the ucontext that executes the code */
static void wrapper(int, int);
- static void makecontext(ucontext_t* ucp, void (*func)(int, int), UContext* arg);
+ static void make_ctx(ucontext_t* ucp, void (*func)(int, int), UContext* arg);
};
class SerialUContext : public UContext {
private:
static simgrid::xbt::Parmap<smx_actor_t>* parmap_;
static std::vector<ParallelUContext*> workers_context_;
- static uintptr_t threads_working_;
+ static std::atomic<uintptr_t> threads_working_;
static xbt_os_thread_key_t worker_id_key_;
};
#endif