From 1804329081f5c5ea3abd202337d9ada0783286aa Mon Sep 17 00:00:00 2001 From: bdemsky Date: Mon, 8 Nov 2010 08:21:38 +0000 Subject: [PATCH] fix bug --- Robust/src/IR/Flat/RuntimeConflictResolver.java | 11 +++++------ Robust/src/Runtime/oooJava/hashStructure.c | 3 +++ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Robust/src/IR/Flat/RuntimeConflictResolver.java b/Robust/src/IR/Flat/RuntimeConflictResolver.java index b68bf535..34eadf13 100644 --- a/Robust/src/IR/Flat/RuntimeConflictResolver.java +++ b/Robust/src/IR/Flat/RuntimeConflictResolver.java @@ -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("}"); } diff --git a/Robust/src/Runtime/oooJava/hashStructure.c b/Robust/src/Runtime/oooJava/hashStructure.c index b7152ed6..240458c0 100644 --- a/Robust/src/Runtime/oooJava/hashStructure.c +++ b/Robust/src/Runtime/oooJava/hashStructure.c @@ -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) { -- 2.34.1