Allow to disable deleting of the native library file after it is loaded.
Motivation: When profiling it is sometimes needed to still have the native library file avaible. We should allow to disable the explicit deletion and just delete it when the JVM stops. This is related to #6110 Modifications: Add io.netty.native.deleteLibAfterLoading system property which allows to disable the explicit delete after laoding Result: Possible to profile native libraries better.
This commit is contained in:
parent
89cb50aefa
commit
fe2b55cea1
@ -43,6 +43,7 @@ public final class NativeLibraryLoader {
|
|||||||
private static final String NATIVE_RESOURCE_HOME = "META-INF/native/";
|
private static final String NATIVE_RESOURCE_HOME = "META-INF/native/";
|
||||||
private static final String OSNAME;
|
private static final String OSNAME;
|
||||||
private static final File WORKDIR;
|
private static final File WORKDIR;
|
||||||
|
private static final boolean DELETE_NATIVE_LIB_AFTER_LOADING;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
OSNAME = SystemPropertyUtil.get("os.name", "").toLowerCase(Locale.US).replaceAll("[^a-z0-9]+", "");
|
OSNAME = SystemPropertyUtil.get("os.name", "").toLowerCase(Locale.US).replaceAll("[^a-z0-9]+", "");
|
||||||
@ -64,6 +65,9 @@ public final class NativeLibraryLoader {
|
|||||||
WORKDIR = tmpdir();
|
WORKDIR = tmpdir();
|
||||||
logger.debug("-Dio.netty.native.workdir: " + WORKDIR + " (io.netty.tmpdir)");
|
logger.debug("-Dio.netty.native.workdir: " + WORKDIR + " (io.netty.tmpdir)");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DELETE_NATIVE_LIB_AFTER_LOADING = SystemPropertyUtil.getBoolean(
|
||||||
|
"io.netty.native.deleteLibAfterLoading", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static File tmpdir() {
|
private static File tmpdir() {
|
||||||
@ -229,7 +233,7 @@ public final class NativeLibraryLoader {
|
|||||||
// After we load the library it is safe to delete the file.
|
// After we load the library it is safe to delete the file.
|
||||||
// We delete the file immediately to free up resources as soon as possible,
|
// We delete the file immediately to free up resources as soon as possible,
|
||||||
// and if this fails fallback to deleting on JVM exit.
|
// and if this fails fallback to deleting on JVM exit.
|
||||||
if (tmpFile != null && !tmpFile.delete()) {
|
if (tmpFile != null && (!DELETE_NATIVE_LIB_AFTER_LOADING || !tmpFile.delete())) {
|
||||||
tmpFile.deleteOnExit();
|
tmpFile.deleteOnExit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user