]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.server/src/org/simantics/document/server/request/DocumentRequest.java
Work in progress
[simantics/platform.git] / bundles / org.simantics.document.server / src / org / simantics / document / server / request / DocumentRequest.java
index 87b244c88ba28e1c43129cdf098a43e2f7781201..1726887cb359d8f92acafb3bb34be41dbd693165 100644 (file)
@@ -10,6 +10,7 @@ import java.util.concurrent.Semaphore;
 import java.util.concurrent.TimeUnit;
 
 import org.simantics.db.ReadGraph;
+import org.simantics.db.common.GraphSemaphore;
 import org.simantics.db.common.procedure.adapter.TransientCacheAsyncListener;
 import org.simantics.db.exception.DatabaseException;
 import org.simantics.db.layer0.request.VariableRead;
@@ -79,7 +80,7 @@ public class DocumentRequest extends VariableRead<List<JSONObject>> {
                        System.out.println("               " + node.getURI(graph));
                }*/
 
-               Semaphore done = new Semaphore(0);
+               GraphSemaphore done = new GraphSemaphore(graph, 0);
                
                for(Variable node : nodes) {
                        
@@ -111,12 +112,7 @@ public class DocumentRequest extends VariableRead<List<JSONObject>> {
                }
                
                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();
                        }