/*******************************************************************************
- * 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
*******************************************************************************/
package org.simantics.db.impl.query;
+import org.simantics.db.exception.DatabaseException;
import org.simantics.db.impl.graph.ReadGraphImpl;
-
-abstract public class SyncIntProcedure implements IntProcedure, ThreadRunnable {
+public abstract class SyncIntProcedure implements IntProcedure, ThreadRunnable {
int barrier = 1;
-//
+
// final private AtomicInteger barrier = new AtomicInteger(1);
-
+
public SyncIntProcedure() {
}
-
- final protected void inc() {
-// System.err.println("inc " + barrier.get());
+
+ protected final void inc() {
+// System.err.println("inc " + barrier.get());
++barrier;
-// barrier.incrementAndGet();
+// barrier.incrementAndGet();
}
-
- final protected void dec(ReadGraphImpl graph) {
-// System.err.println("dec " + barrier.get());
- if((--barrier) == 0) {
+
+ protected final void dec(ReadGraphImpl graph) throws DatabaseException {
+// System.err.println("dec " + barrier.get());
+ if((--barrier) == 0) {
run(graph);
- }
+ }
}
-
+
@Override
- public void exception(ReadGraphImpl graph, Throwable t) {
- throw new Error("Errors are not supported,", t);
+ public void exception(ReadGraphImpl graph, Throwable t) throws DatabaseException {
+ throw new Error("Errors are not supported,", t);
}
-
+
}