X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;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=060fc22aefb866d15a17bb0f70e7cd4692846d90;hp=b94ec6f6857cb0e0ca913ef920a5231c9ecc3577;hb=90a52d58489b6c518b13dde238923125c8f63eec;hpb=bb61be97905f72c01fd99e21c263546c88edc5f7 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 b94ec6f68..060fc22ae 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 @@ -18,20 +18,24 @@ import org.simantics.db.common.utils.Logger; import org.simantics.db.exception.RuntimeDatabaseException; import org.simantics.db.impl.query.CacheEntry; import org.simantics.db.impl.query.QueryProcessor.AsyncBarrier; +import org.simantics.db.impl.query.QueryProcessor.SessionTask; final public class AsyncBarrierImpl extends AtomicInteger implements AsyncBarrier { private static final long serialVersionUID = 4724463372850048672L; - static final int WAIT_TIME = 600; + static final int WAIT_TIME = 60000; public static final boolean PRINT = false; final public AsyncBarrierImpl caller; + + final public Runnable callback; - public AsyncBarrierImpl(AsyncBarrierImpl caller, CacheEntry entry) { + public AsyncBarrierImpl(AsyncBarrierImpl caller, CacheEntry entry, Runnable callback) { super(0); this.caller = caller; + this.callback = callback; if (BarrierTracing.BOOKKEEPING) { BarrierTracing.trace(this, entry); } @@ -92,6 +96,10 @@ final public class AsyncBarrierImpl extends AtomicInteger implements AsyncBarrie new Exception()); } assert (count >= 0); + + if(callback != null) + callback.run(); + } } @@ -142,7 +150,7 @@ final public class AsyncBarrierImpl extends AtomicInteger implements AsyncBarrie e.printStackTrace(); } } - if(waitCount > WAIT_TIME*1000) { + if(waitCount > WAIT_TIME) { System.err.println("AsyncBarrierImpl.waitBarrier(" + request @@ -153,6 +161,11 @@ final public class AsyncBarrierImpl extends AtomicInteger implements AsyncBarrie synchronized (BarrierTracing.reverseLookup) { printReverse(this, 0); } + BarrierTracing.printBAPS(); + } + + for(SessionTask t : impl.processor.freeScheduling) { + System.err.println("Pending task:" + t); } // if(Development.DEVELOPMENT) {