From: adash Date: Wed, 30 Apr 2008 09:15:56 +0000 (+0000) Subject: barrier bug fix X-Git-Tag: preEdgeChange~124 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=218d54771027594fb860b7fa66269abaf35c8811;p=IRC.git barrier bug fix --- diff --git a/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/Barrier.java b/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/Barrier.java index 482b695a..fda1503f 100644 --- a/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/Barrier.java +++ b/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/Barrier.java @@ -19,7 +19,7 @@ public class Barrier { public static void enterBarrier(Barrier b) { int tmp; - boolean retry=true; + boolean retry=true, ret1=false, ret2=true;; do { atomic { @@ -30,21 +30,23 @@ public class Barrier { if(b.numthreads > 1) b.cleared=true; b.entercount--; - return; + //return; + ret1 = true; } retry=false; } } } while(retry); - - while(true) { + if (ret1) return; + while(ret2) { atomic { if (b.cleared) { b.entercount--; int count = b.entercount; if (count==0) b.cleared=false; - return; + //return; + ret2=false; } } }