Merge branch 'master' of /home/git/random-fuzzer into thread-switch
[c11tester.git] / threads-model.h
index c6078200f5911f5bf3dd78f80125b881683e1a0e..8047e1f33d963d001fab179feab210c405ed7f34 100644 (file)
@@ -49,6 +49,7 @@ public:
 
        static int swap(ucontext_t *ctxt, Thread *t);
        static int swap(Thread *t, ucontext_t *ctxt);
+       static int swap(Thread *t, Thread *t2);
 
        thread_state get_state() const { return state; }
        void set_state(thread_state s);
@@ -101,6 +102,9 @@ public:
 
        bool is_model_thread() const { return model_thread; }
 
+       void * get_stack_addr() { return stack; }
+       ClockVector * get_acq_fence_cv() { return acq_fence_cv; }
+
        friend void thread_startup();
 #ifdef TLS
        friend void setup_context();
@@ -135,6 +139,9 @@ private:
        /** @brief The parent Thread which created this Thread */
        Thread * const parent;
 
+       /** @brief Acquire fence cv */
+       ClockVector *acq_fence_cv;
+
        /** @brief The THREAD_CREATE ModelAction which created this Thread */
        ModelAction *creation;
 
@@ -156,6 +163,7 @@ private:
        void *arg;
        ucontext_t context;
        void *stack;
+       uint32_t stack_size;
 #ifdef TLS
        void * helper_stack;
 public: