X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7da2926d0733ff0683f31aeea176ce71e127264f..ea74f5d95928a521a588737e81f1de94eef25d19:/src/bindings/java/org/simgrid/msg/Comm.java diff --git a/src/bindings/java/org/simgrid/msg/Comm.java b/src/bindings/java/org/simgrid/msg/Comm.java index 86c33cbd5f..d73d042097 100644 --- a/src/bindings/java/org/simgrid/msg/Comm.java +++ b/src/bindings/java/org/simgrid/msg/Comm.java @@ -1,4 +1,4 @@ -/* Copyright (c) 2012-2014. The SimGrid Team. +/* Copyright (c) 2012-2022. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -6,32 +6,21 @@ 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 - */ + /** Indicates if the communication is a receiving communication */ protected boolean receiving; - /** - * Indicates if the communication is finished - */ + /** Indicates if the communication is finished */ 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; - /** - * Represents the bind for the task object pointer. Don't touch it. - */ + /** Represents the bind for the task object pointer. Don't touch it. */ private long taskBind = 0; - /** - * Task associated with the comm. Beware, it can be null - */ + /** Task associated with the comm. Beware, it can be null */ protected Task task = null; /** * Protected constructor, used by Comm factories @@ -40,14 +29,13 @@ public class Comm { protected Comm() { } - /** Destroy the C communication object, when the GC reclaims the java part. */ - @Override - protected void finalize() { - try { - nativeFinalize(); - } catch (Throwable e) { - e.printStackTrace(); - } + /** + * Destroy the C communication object, when the GC reclaims the java part. + * @deprecated (from Java9 onwards) + */ + @Deprecated @Override + protected void finalize() throws Throwable{ + nativeFinalize(); } protected native void nativeFinalize(); /** @@ -67,6 +55,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. @@ -75,12 +71,10 @@ public class Comm { return task; } - /** - * Class initializer, to initialize various JNI stuff - */ + /** Class initializer, to initialize various JNI stuff */ public static native void nativeInit(); static { org.simgrid.NativeLib.nativeInit(); nativeInit(); - } + } }