X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.db.common%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fcommon%2FProcedureBarrier.java;h=f369fe20e944932dcde22ed47a8be19f7353dd57;hp=3bc553c9d0e0447dbd82618ef618bfa333ae4e4b;hb=6259de5991b9c11f6d46807d88f51830473adb13;hpb=969bd23cab98a79ca9101af33334000879fb60c5 diff --git a/bundles/org.simantics.db.common/src/org/simantics/db/common/ProcedureBarrier.java b/bundles/org.simantics.db.common/src/org/simantics/db/common/ProcedureBarrier.java index 3bc553c9d..f369fe20e 100644 --- a/bundles/org.simantics.db.common/src/org/simantics/db/common/ProcedureBarrier.java +++ b/bundles/org.simantics.db.common/src/org/simantics/db/common/ProcedureBarrier.java @@ -1,42 +1,42 @@ -package org.simantics.db.common; - -import java.util.concurrent.atomic.AtomicInteger; - -import org.simantics.db.AsyncReadGraph; -import org.simantics.db.procedure.AsyncProcedure; - -final public class ProcedureBarrier extends AtomicInteger { - - private static final long serialVersionUID = -2699547741948233067L; - - private volatile Throwable throwable; - - public ProcedureBarrier(int initial) { - super(initial); - } - - final synchronized public void except(Throwable throwable) { - this.throwable = throwable; - } - - final public Throwable getThrowable() { - return throwable; - } - - final public void dec(AsyncReadGraph graph, AsyncProcedure procedure, Throwable throwable) { - synchronized(this) { - this.throwable = throwable; - } - if(decrementAndGet() == 0) { - procedure.exception(graph, throwable); - } - } - - final public void dec(AsyncReadGraph graph, AsyncProcedure procedure, T result) { - if(decrementAndGet() == 0) { - if(throwable != null) procedure.exception(graph, throwable); - else procedure.execute(graph, result); - } - } - -} +package org.simantics.db.common; + +import java.util.concurrent.atomic.AtomicInteger; + +import org.simantics.db.AsyncReadGraph; +import org.simantics.db.procedure.AsyncProcedure; + +final public class ProcedureBarrier extends AtomicInteger { + + private static final long serialVersionUID = -2699547741948233067L; + + private volatile Throwable throwable; + + public ProcedureBarrier(int initial) { + super(initial); + } + + final synchronized public void except(Throwable throwable) { + this.throwable = throwable; + } + + final public Throwable getThrowable() { + return throwable; + } + + final public void dec(AsyncReadGraph graph, AsyncProcedure procedure, Throwable throwable) { + synchronized(this) { + this.throwable = throwable; + } + if(decrementAndGet() == 0) { + procedure.exception(graph, throwable); + } + } + + final public void dec(AsyncReadGraph graph, AsyncProcedure procedure, T result) { + if(decrementAndGet() == 0) { + if(throwable != null) procedure.exception(graph, throwable); + else procedure.execute(graph, result); + } + } + +}