fix bug
authorbdemsky <bdemsky>
Mon, 8 Nov 2010 08:21:38 +0000 (08:21 +0000)
committerbdemsky <bdemsky>
Mon, 8 Nov 2010 08:21:38 +0000 (08:21 +0000)
Robust/src/IR/Flat/RuntimeConflictResolver.java
Robust/src/Runtime/oooJava/hashStructure.c

index b68bf535a92ec3779709d78f7f1c98713856ee4a..34eadf13b6d16afa0b4d10d52debf4c6dd859010 100644 (file)
@@ -417,6 +417,11 @@ public class RuntimeConflictResolver {
         TempDescriptor tmp=invars.get(i);
         cFile.println("      " + this.getTraverserInvocation(tmp, "rec->"+tmp+", rec", fsen));
       }
+      //release traverser reference...traversal finished...
+      //executing thread will clean bins for us
+      cFile.println("#ifndef OOO_DISABLE_TASKMEMPOOL");
+      cFile.println("    RELEASE_REFERENCE_TO(record);");
+      cFile.println("#endif");
       cFile.println(    "    }");
       cFile.println(    "    break;");
     }
@@ -432,13 +437,7 @@ public class RuntimeConflictResolver {
     }
 
     cFile.println("    default:\n    printf(\"Invalid SESE ID was passed in: %d.\\n\",record->classID);\n    break;");
-    
     cFile.println("  }");
-    //release traverser reference...traversal finished...
-    //executing thread will clean bins for us
-    cFile.println("#ifndef OOO_DISABLE_TASKMEMPOOL");
-    cFile.println("    RELEASE_REFERENCE_TO(record);");
-    cFile.println("#endif");
     cFile.println("}");
   }
 
index b7152ed6da020cd5b00d7fd69ccbc87184850e16..240458c0260b065a025fbf4a64e8cfaf9acfa16a 100644 (file)
@@ -434,6 +434,9 @@ void RESOLVE(SESEcommon *record, bitvt mask) {
        //mark the record unused
        BARRIER();
        record->rcrstatus=0;
+#ifndef OOO_DISABLE_TASKMEMPOOL
+       RELEASE_REFERENCE_TO(record);
+#endif
       } else {
        int flag=LOCKXCHG32(&array[index].flag,0);
        if (flag) {