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;
protected boolean finished = false;
/**
* Represents the bind between the java comm and the
- * native C comm. You must never access it, since it is
+ * native C comm. You must never access it, since it is
* automatically set.
*/
private long bind = 0;
}
/** Destroy the C communication object, when the GC reclaims the java part. */
+ @Override
protected void finalize() throws Throwable{
nativeFinalize();
}
*/
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.