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;h=229c3d6a9e965b5b14167896334c2e83b1b2508a;hp=7184acbc5242de4029abe6606eb806e37f424193;hb=0d9b90834ce56b292c00b1a39850ed842c3e4d42;hpb=e5db6157fd8722c946613d4e46d7aaf6bfa92609 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 7184acbc5..229c3d6a9 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 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2010 Association for Decentralized Information Management + * Copyright (c) 2007, 2018 Association for Decentralized Information Management * in Industry THTH ry. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -20,8 +20,6 @@ import java.util.concurrent.atomic.AtomicInteger; import org.simantics.db.common.utils.Logger; import org.simantics.db.exception.RuntimeDatabaseException; import org.simantics.db.impl.query.QueryProcessor.AsyncBarrier; -import org.simantics.db.impl.query.QueryProcessor.SessionTask; -import org.simantics.utils.Development; final public class AsyncBarrierImpl extends AtomicInteger implements AsyncBarrier { @@ -39,6 +37,8 @@ final public class AsyncBarrierImpl extends AtomicInteger implements AsyncBarrie final private AsyncBarrierImpl caller; + //private final Semaphore sema = new Semaphore(0); + public AsyncBarrierImpl(AsyncBarrierImpl caller) { super(0); if (BOOKKEEPING) { @@ -294,7 +294,7 @@ final public class AsyncBarrierImpl extends AtomicInteger implements AsyncBarrie while (get() != 0) { - boolean executed = impl.processor.resume(impl); + boolean executed = impl.performPending(); if(executed) waitCount = 0; ++waitCount; @@ -321,18 +321,16 @@ 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); - } - - } +// 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); +// } +// } throw new RuntimeDatabaseException("Request timed out."); //waitCount = 0;