change snapshot mode
[c11tester.git] / threads-model.h
index 11f2d547233119dc165d86eb62f0de8a5f438df5..752731e246adc93c9ecaa6a03fef22471f04f77c 100644 (file)
@@ -43,6 +43,7 @@ public:
        Thread(thread_id_t tid);
        Thread(thread_id_t tid, thrd_t *t, void (*func)(void *), void *a, Thread *parent);
        Thread(thread_id_t tid, thrd_t *t, void *(*func)(void *), void *a, Thread *parent);
+
        ~Thread();
        void complete();
 
@@ -73,6 +74,10 @@ public:
         */
        uint64_t get_return_value() const { return last_action_val; }
 
+       /** @set and get the return value from pthread functions */
+       void set_pthread_return(void *ret) { pthread_return = ret; }
+       void * get_pthread_return() { return pthread_return; }
+
        /** @return True if this thread is finished executing */
        bool is_complete() const { return state == THREAD_COMPLETED; }
 
@@ -133,6 +138,7 @@ private:
 
        void (*start_routine)(void *);
        void *(*pstart_routine)(void *);
+
        void *arg;
        ucontext_t context;
        void *stack;
@@ -147,6 +153,9 @@ private:
         */
        uint64_t last_action_val;
 
+       /** the value return from pthread functions */
+       void * pthread_return;
+
        /** @brief Is this Thread a special model-checker thread? */
        const bool model_thread;
 };