From 902bd98cb131031d0771d43b61b4535c8c5b257b Mon Sep 17 00:00:00 2001 From: adash Date: Fri, 3 Apr 2009 22:29:03 +0000 Subject: [PATCH] added options for STM --- Robust/src/Runtime/garbage.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Robust/src/Runtime/garbage.c b/Robust/src/Runtime/garbage.c index 47f4ae3a..eeb2d01e 100644 --- a/Robust/src/Runtime/garbage.c +++ b/Robust/src/Runtime/garbage.c @@ -6,7 +6,7 @@ #include "chash.h" #include "GenericHashtable.h" #include -#if defined(THREADS) || defined(DSTM) +#if defined(THREADS) || defined(DSTM) || defined(STM) #include "thread.h" #endif @@ -16,6 +16,9 @@ #ifdef DSTM #include "dstm.h" #endif +#ifdef STM +#include "tm.h" +#endif #define NUMPTRS 100 @@ -472,7 +475,7 @@ void restartaftergc(struct listitem * litem) { void * mygcmalloc(struct garbagelist * stackptr, int size) { void *ptr; -#if defined(THREADS)||defined(DSTM) +#if defined(THREADS)||defined(DSTM)||defined(STM) if (pthread_mutex_trylock(&gclock)!=0) { struct listitem *tmp=stopforgc(stackptr); pthread_mutex_lock(&gclock); @@ -496,7 +499,7 @@ void * mygcmalloc(struct garbagelist * stackptr, int size) { to_heaptop=to_heapbase+INITIALHEAPSIZE; to_heapptr=to_heapbase; ptr=curr_heapbase; -#if defined(THREADS)||defined(DSTM) +#if defined(THREADS)||defined(DSTM)||defined(STM) pthread_mutex_unlock(&gclock); #endif return ptr; @@ -549,20 +552,20 @@ void * mygcmalloc(struct garbagelist * stackptr, int size) { /* Not enough room :(, redo gc */ if (curr_heapptr>curr_heapgcpoint) { -#if defined(THREADS)||defined(DSTM) +#if defined(THREADS)||defined(DSTM)||defined(STM) pthread_mutex_unlock(&gclock); #endif return mygcmalloc(stackptr, size); } bzero(tmp, curr_heaptop-tmp); -#if defined(THREADS)||defined(DSTM) +#if defined(THREADS)||defined(DSTM)||defined(STM) pthread_mutex_unlock(&gclock); #endif return tmp; } } else { -#if defined(THREADS)||defined(DSTM) +#if defined(THREADS)||defined(DSTM)||defined(STM) pthread_mutex_unlock(&gclock); #endif return ptr; -- 2.34.1