The following comment is included in threads.h to explain this choice:
Intentionally NOT allocated with MODELALLOC or SNAPSHOTALLOC. Threads
should be allocated on the user's normal (snapshotting) heap to allow
their allocation/deallocation to follow the same pattern as the rest
of the backtracked/replayed program.
This fix solves problems seen in certain test programs regarding a
Thread being allocated in different locations for different executions.
friend void thread_startup();
- SNAPSHOTALLOC
+ /**
+ * Intentionally NOT allocated with MODELALLOC or SNAPSHOTALLOC.
+ * Threads should be allocated on the user's normal (snapshotting) heap
+ * to allow their allocation/deallocation to follow the same pattern as
+ * the rest of the backtracked/replayed program.
+ */
private:
int create_context();
Thread *parent;