]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.impl/src/org/simantics/db/impl/graph/AsyncBarrierImpl.java
Yet another fixing commit
[simantics/platform.git] / bundles / org.simantics.db.impl / src / org / simantics / db / impl / graph / AsyncBarrierImpl.java
index 7184acbc5242de4029abe6606eb806e37f424193..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;
@@ -323,14 +327,14 @@ final public class AsyncBarrierImpl extends AtomicInteger implements AsyncBarrie
 
                                        if(Development.DEVELOPMENT) {
 
-                                               impl.processor.threadLocks[0].lock();
-                                               System.err.println("-queues=" + impl.processor.queues[0].size());
-                                               impl.processor.threadLocks[0].unlock();
-                                               System.err.println("-own=" + impl.processor.ownTasks[0].size());
-                                               System.err.println("-ownSync=" + impl.processor.ownSyncTasks[0].size());
-                                               for(SessionTask task : impl.processor.ownSyncTasks[0]) {
-                                                       System.err.println("--" + task);
-                                               }
+//                                             impl.processor.threadLocks[0].lock();
+//                                             System.err.println("-queues=" + impl.processor.queues[0].size());
+//                                             impl.processor.threadLocks[0].unlock();
+//                                             System.err.println("-own=" + impl.processor.ownTasks[0].size());
+//                                             System.err.println("-ownSync=" + impl.processor.ownSyncTasks[0].size());
+//                                             for(SessionTask task : impl.processor.ownSyncTasks[0]) {
+//                                                     System.err.println("--" + task);
+//                                             }
 
                                        }