import java.util.concurrent.Semaphore;
import java.util.concurrent.TimeUnit;
+import org.simantics.db.AsyncReadGraph;
import org.simantics.db.ReadGraph;
+import org.simantics.db.common.GraphSemaphore;
import org.simantics.db.common.procedure.adapter.TransientCacheAsyncListener;
+import org.simantics.db.common.request.AsyncReadRequest;
import org.simantics.db.exception.DatabaseException;
import org.simantics.db.layer0.request.VariableRead;
import org.simantics.db.layer0.variable.Variable;
System.out.println(" " + node.getURI(graph));
}*/
- Semaphore done = new Semaphore(0);
+<<<<<<< Upstream, based on branch 'private/antti_threads' of ssh://villberg@gerrit.simantics.org:29418/simantics/platform.git
+ GraphSemaphore done = new GraphSemaphore(graph, 0);
for(Variable node : nodes) {
}
try {
- boolean success = done.tryAcquire(nodes.size(), 10, TimeUnit.MILLISECONDS);
- while(!success) {
- success = done.tryAcquire(nodes.size(), 10, TimeUnit.MILLISECONDS);
- System.err.println("still trying to acquire semaphore, avail = " + done.availablePermits() );
- }
-
+ done.waitFor(nodes.size());
} catch (InterruptedException e) {
e.printStackTrace();
}
+=======
+ graph.syncRequest(new AsyncReadRequest() {
+
+ @Override
+ public void run(AsyncReadGraph graph) {
+
+ for(Variable node : nodes) {
+
+ graph.asyncRequest(new NodeRequestE(node), new Listener<JSONObject>() {
+
+ @Override
+ public void execute(JSONObject result) {
+ synchronized(rs) {
+ rs.add(result);
+ }
+ }
+
+ @Override
+ public void exception(Throwable t) {
+ t.printStackTrace();
+ }
+
+ @Override
+ public boolean isDisposed() {
+ return true;
+ }
+
+ });
+
+ }
+
+ }
+
+ });
+>>>>>>> 82fa68e Generate parts of db client query code
ArrayList<JSONObject> result = new ArrayList<JSONObject>(rs);
Collections.sort(result, new Comparator<JSONObject>() {