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=ba08114c6a8261330846c5411ab1902a7f73a9ca;hpb=1cb58fb59cd64891c682a7e7b04e00af9e3be575;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 ba08114c6..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); + + } } @@ -170,7 +184,7 @@ final public class AsyncMultiReadEntry extends CacheEntryBase procedure) throws DatabaseException { return graph.processor.cache.performQuery(graph, request, this, procedure); }