threads: allocate on user's snapshotting heap
authorBrian Norris <banorris@uci.edu>
Tue, 9 Oct 2012 01:59:26 +0000 (18:59 -0700)
committerBrian Norris <banorris@uci.edu>
Tue, 9 Oct 2012 02:01:14 +0000 (19:01 -0700)
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

index 9fecdfd3c7466398c85ec3dfafebb314d5887bfa..91db236f4bddb904fbd7944c35c00b39bbfce092 100644 (file)
--- 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;