Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix bug in java binding for Comm.waitAny
[simgrid.git] / src / bindings / java / org / simgrid / msg / Comm.java
index 8d07c51..12e6a11 100644 (file)
@@ -6,10 +6,7 @@
 
 package org.simgrid.msg;
 
-/**
- * Communication action, representing an ongoing communication
- * between processes.
- */
+/** Communication action, representing an ongoing communication between processes. */
 public class Comm {
        /** Indicates if the communication is a receiving communication */
        protected boolean receiving;
@@ -34,12 +31,8 @@ public class Comm {
        }
        /** Destroy the C communication object, when the GC reclaims the java part. */
        @Override
-       protected void finalize() {
-               try {
-                       nativeFinalize();
-               } catch (Throwable e) {
-                       e.printStackTrace();
-               }
+       protected void finalize() throws Throwable{
+               nativeFinalize();
        }
        protected native void nativeFinalize();
        /**
@@ -59,6 +52,14 @@ public class Comm {
         */
        public native void waitCompletion(double timeout) throws TransferFailureException, HostFailureException, TimeoutException;
 
+       /** Wait all of the communications */
+       public static native void waitAll(Comm[] comms, double timeout) throws TransferFailureException, HostFailureException, TimeoutException;
+       /** Wait all of the communications, with no maximal delay */
+       public static void waitAll(Comm[] comms) throws TransferFailureException, HostFailureException, TimeoutException {
+               waitAll(comms, -1.);
+       }
+       /** Wait any of the communications, and return the rank of the terminating comm */
+       public static native int waitAny(Comm[] comms) throws TransferFailureException, HostFailureException, TimeoutException;
        /**
         * Returns the task associated with the communication.
         * if the communication isn't finished yet, will return null.