threads: allocate Threads in via userMalloc()
authorBrian Norris <banorris@uci.edu>
Tue, 24 Apr 2012 20:38:37 +0000 (13:38 -0700)
committerBrian Norris <banorris@uci.edu>
Tue, 24 Apr 2012 20:38:37 +0000 (13:38 -0700)
Thread state information should be held in the snapshotting region (when
implemented), so override new and delete.

threads.cc
threads.h

index a4ea252a2342e072385e10773a11008392eb1990..47a211c20fe37ea25bf2536dc26cbbc520437291 100644 (file)
@@ -63,6 +63,14 @@ void Thread::complete()
        }
 }
 
+void * Thread::operator new(size_t size) {
+       return userMalloc(size);
+}
+
+void Thread::operator delete(void *ptr) {
+       userFree(ptr);
+}
+
 Thread::Thread(thrd_t *t, void (*func)(), void *a) {
        int ret;
 
index 4a8025137013f3c4d9a20c8149cab709f2a1f108..44e1013768e911c6aaec6aa8564fd2a629b94cc7 100644 (file)
--- a/threads.h
+++ b/threads.h
@@ -16,6 +16,8 @@ typedef enum thread_state {
 
 class Thread {
 public:
+       void * operator new(size_t size);
+       void operator delete(void *ptr);
        Thread(thrd_t *t, void (*func)(), void *a);
        Thread(thrd_t *t);
        ~Thread();