protected Comm() {
}
- /**
- * Finalize the communication object, destroying it.
- */
- protected void finalize() throws Throwable {
- destroy();
+ /** Destroy the C communication object, when the GC reclaims the java part. */
+ @Override
+ protected void finalize() {
+ try {
+ nativeFinalize();
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
}
- /**
- * Unbind the communication object
- */
- protected native void destroy() throws NativeException;
+ protected native void nativeFinalize();
/**
* Returns if the communication is finished or not.
* If the communication has finished and there was an error,
* raise an exception.
*/
public native boolean test() throws TransferFailureException, HostFailureException, TimeoutException ;
- /**
- * Wait for the complemetion of the communication for an indefinite time
- */
+ /** Wait infinitely for the completion of the communication (infinite timeout) */
public void waitCompletion() throws TransferFailureException, HostFailureException, TimeoutException {
waitCompletion(-1);
}
/**
* Wait for the completion of the communication.
* Throws an exception if there were an error in the communication.
- * @param timeout Time before giving up
+ * @param timeout Time before giving up (infinite time if negative)
*/
public native void waitCompletion(double timeout) throws TransferFailureException, HostFailureException, TimeoutException;
-
+
/**
* Returns the task associated with the communication.
* if the communication isn't finished yet, will return null.
*/
public static native void nativeInit();
static {
- Msg.nativeInit();
+ org.simgrid.NativeLib.nativeInit();
nativeInit();
}
}