From 9db4729d3e6ab5f3ec5fd8a2560d95026332fecf Mon Sep 17 00:00:00 2001
From: Brian Norris <banorris@uci.edu>
Date: Mon, 8 Oct 2012 18:59:26 -0700
Subject: [PATCH] threads: allocate on user's snapshotting heap

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.
---
 threads.h | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/threads.h b/threads.h
index 9fecdfd..91db236 100644
--- a/threads.h
+++ b/threads.h
@@ -106,7 +106,12 @@ public:
 
 	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;
-- 
2.34.1