X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db.impl%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fimpl%2Fgraph%2FAsyncBarrierImpl.java;fp=bundles%2Forg.simantics.db.impl%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fimpl%2Fgraph%2FAsyncBarrierImpl.java;h=4b9f19a2314f3c34658d72e57376cab1ba58ca62;hb=6326b65c5c6a785aadcb615cb95ceadd8f53964a;hp=c1a1726258eb71e1a4f575f406c967980e27f4f6;hpb=6d56f5ff3422fd5200d396d325422a4ccaf19f94;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.db.impl/src/org/simantics/db/impl/graph/AsyncBarrierImpl.java b/bundles/org.simantics.db.impl/src/org/simantics/db/impl/graph/AsyncBarrierImpl.java index c1a172625..4b9f19a23 100644 --- a/bundles/org.simantics.db.impl/src/org/simantics/db/impl/graph/AsyncBarrierImpl.java +++ b/bundles/org.simantics.db.impl/src/org/simantics/db/impl/graph/AsyncBarrierImpl.java @@ -15,6 +15,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.Semaphore; import java.util.concurrent.atomic.AtomicInteger; import org.simantics.db.common.utils.Logger; @@ -38,6 +40,8 @@ final public class AsyncBarrierImpl extends AtomicInteger implements AsyncBarrie static final boolean RESTART_GUARD = false; final private AsyncBarrierImpl caller; + + final private Semaphore sema = new Semaphore(0); public AsyncBarrierImpl(AsyncBarrierImpl caller) { super(0); @@ -293,8 +297,8 @@ final public class AsyncBarrierImpl extends AtomicInteger implements AsyncBarrie long waitCount = 0; while (get() != 0) { - - boolean executed = impl.processor.resume(impl); + + boolean executed = impl.performPending(); if(executed) waitCount = 0; ++waitCount;