X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db.impl%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fimpl%2Fquery%2FAsyncMultiReadEntry.java;h=8d1bbd2040c51a144b547fa9145cc064136c2f53;hb=8b6de499c9c1bad0e72631719fd165ce39d6ad56;hp=6f718f1fe4d2407cb92ee0cbd445e3dd2e1d3382;hpb=5bc1c2b950d374ecfcc206981724c3b9286dcbd6;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/AsyncMultiReadEntry.java b/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/AsyncMultiReadEntry.java index 6f718f1fe..8d1bbd204 100644 --- a/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/AsyncMultiReadEntry.java +++ b/bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/AsyncMultiReadEntry.java @@ -88,23 +88,37 @@ final public class AsyncMultiReadEntry extends CacheEntryBase() { + try { - @Override - public void execute(AsyncReadGraph graph, T result) { - addOrSet(result); - } + GraphSemaphore s = new GraphSemaphore(graph, 0); - public void finished(AsyncReadGraph graph) { - finish(graph); - }; + request.perform(graph , new AsyncMultiProcedure() { - @Override - public void exception(AsyncReadGraph graph, Throwable t) { - except(t); - } + @Override + public void execute(AsyncReadGraph graph, T result) { + addOrSet(result); + } - }); + public void finished(AsyncReadGraph graph) { + finish(graph); + s.release(); + }; + + @Override + public void exception(AsyncReadGraph graph, Throwable t) { + except(t); + s.release(); + } + + }); + + s.waitFor(1); + + } catch (Throwable t) { + + except(t); + + } }