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;
static final boolean RESTART_GUARD = false;
final private AsyncBarrierImpl caller;
+
+ final private Semaphore sema = new Semaphore(0);
public AsyncBarrierImpl(AsyncBarrierImpl caller) {
super(0);
long waitCount = 0;
while (get() != 0) {
-
- boolean executed = impl.processor.resume(impl);
+
+ boolean executed = impl.performPending();
if(executed) waitCount = 0;
++waitCount;
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);
+// }
}