recovery added
authorjihoonl <jihoonl>
Wed, 7 Oct 2009 19:23:05 +0000 (19:23 +0000)
committerjihoonl <jihoonl>
Wed, 7 Oct 2009 19:23:05 +0000 (19:23 +0000)
Robust/src/Runtime/runtime.c

index 9858b07009a64aad5c22b8a9f5d9c14b190edbc1..701b9bea081b586398d0f1125f3b84a842c98543 100644 (file)
@@ -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 */