]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.impl/src/org/simantics/db/impl/graph/AsyncBarrierImpl.java
Working towards multiple readers.
[simantics/platform.git] / bundles / org.simantics.db.impl / src / org / simantics / db / impl / graph / AsyncBarrierImpl.java
index c1a1726258eb71e1a4f575f406c967980e27f4f6..4b9f19a2314f3c34658d72e57376cab1ba58ca62 100644 (file)
@@ -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;