}
/** 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();
/**
public File(String path) {
open(path);
}
- @Override
- protected void finalize() {
- }
/**
* Opens the file whose name is the string pointed to by path.
* @param path is the file location on the storage
/**
* Read elements of a file.
* @param size of each element
- * @param nMemb is the number of elements of data to write
+ * @param nMemb is the number of elements of data to write
+ * @return the actually read size
*/
public native long read(long size, long nMemb);
+
/**
* Write elements into a file.
* @param size of each element
* @param nMemb is the number of elements of data to write
+ * @return the actually written size
*/
public native long write(long size, long nMemb);
/**
public Mutex() {
init();
}
- @Override
- protected void finalize() {
- try {
- nativeFinalize();
- } catch (Throwable e) {
- e.printStackTrace();
- }
+
+ protected void finalize() throws Throwable{
+ nativeFinalize();
}
private native void nativeFinalize();
private native void init();
* The natively implemented method to create a C RngStream object.
*/
private native void create(String name);
- @Override
- protected void finalize() {
- try {
- nativeFinalize();
- } catch (Throwable e) {
- e.printStackTrace();
- }
+
+ protected void finalize() throws Throwable{
+ nativeFinalize();
}
/**
* Release the C RngStream object
/** Deletes this semaphore when the GC reclaims it */
- @Override
- protected void finalize() {
- try {
- nativeFinalize();
- } catch (Throwable e) {
- e.printStackTrace();
- }
+ protected void finalize() throws Throwable {
+ nativeFinalize();
}
private native void nativeFinalize();
/**
public native void cancel();
/** Deletes a task once the garbage collector reclaims it */
- @Override
- protected void finalize() {
- try {
- // Exceptions in finalizers lead to bad situations:
- // http://stackoverflow.com/questions/7644556/troubleshooting-a-java-memory-leak-finalization
- nativeFinalize();
- bind=0; // to avoid segfaults if the impossible happens yet again making this task surviving its finalize()
- } catch (Throwable e) {
- e.printStackTrace();
- }
+ protected void finalize() throws Throwable{
+ nativeFinalize();
+ bind=0; // to avoid segfaults if the impossible happens yet again making this task surviving its finalize()
}
protected native void nativeFinalize();
/* * * *
# libsmx.c simcall_BODY_
if self.simcalls_BODY is None:
f = open('libsmx.cpp')
- self.simcalls_BODY = set(re.findall('simcall_BODY_(.*?)\(', f.read()))
+ self.simcalls_BODY = set(re.findall(r'simcall_BODY_(.*?)\(', f.read()))
f.close()
if self.name not in self.simcalls_BODY:
print ('# ERROR: No function calling simcall_BODY_%s' % self.name)
self.simcalls_PRE = set()
for fn in glob.glob('smx_*') + glob.glob('../mc/*'):
f = open(fn)
- self.simcalls_PRE |= set(re.findall('simcall_HANDLER_(.*?)\(', f.read()))
+ self.simcalls_PRE |= set(re.findall(r'simcall_HANDLER_(.*?)\(', f.read()))
f.close()
if self.need_handler:
if self.name not in self.simcalls_PRE:
assert match, line
ret, name, args, attrs = match.groups()
sargs = []
- if not re.match("^\s*$", args):
+ if not re.match(r"^\s*$", args):
for arg in re.split(",", args):
args = args.strip()
- match = re.match("^(.*?)\s*?(\S+)$", arg)
+ match = re.match(r"^(.*?)\s*?(\S+)$", arg)
t, n = match.groups()
t = t.strip()
n = n.strip()