From 3307f775c9b6de130e83ccb1a6e109a29c41f815 Mon Sep 17 00:00:00 2001 From: jihoonl Date: Wed, 7 Oct 2009 19:23:05 +0000 Subject: [PATCH] recovery added --- Robust/src/Runtime/runtime.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Robust/src/Runtime/runtime.c b/Robust/src/Runtime/runtime.c index 9858b070..701b9bea 100644 --- a/Robust/src/Runtime/runtime.c +++ b/Robust/src/Runtime/runtime.c @@ -365,7 +365,31 @@ void CALL02(___System______rangePrefetch____L___Object_____AR_S, struct ___Objec return; } #endif +#ifdef RECOVERY +extern void* virtualtable[]; +// associated with Task.execution(). finds proper execute method and call it +void CALL01(___Task______execution____,struct ___Task___ * ___this___) +{ + unsigned int oid; + oid = (unsigned int) VAR(___this___); // object id + int type = getObjType(oid); // object type + +#ifdef PRECISE_GC + int p[] = {1,0 , oid}; + + ((void(*) (void *))virtualtable[type*MAXCOUNT + EXECUTEMETHOD])(p); +#else + // call the proper execute method + ((void(*) (void *))virtualtable[type*MAXCOUNT + EXECUTEMETHOD])(oid); +#endif +} +#else +void CALL01(___Task______execution____,struct ___Task___ * ___this___) +{ + return; +} +#endif #endif /* STM Barrier constructs */ -- 2.34.1