From 5e5d8b86e9dbbfb4873adc717508f0b66679f13c Mon Sep 17 00:00:00 2001 From: Brian Norris Date: Tue, 24 Apr 2012 13:38:37 -0700 Subject: [PATCH] threads: allocate Threads in via userMalloc() Thread state information should be held in the snapshotting region (when implemented), so override new and delete. --- threads.cc | 8 ++++++++ threads.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/threads.cc b/threads.cc index a4ea252..47a211c 100644 --- a/threads.cc +++ b/threads.cc @@ -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; diff --git a/threads.h b/threads.h index 4a80251..44e1013 100644 --- 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(); -- 2.34.1