mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-04 10:19:33 +02:00
avoid multiple plugin instances
This commit is contained in:
parent
0431c36fc4
commit
22fcf7851b
1 changed files with 10 additions and 3 deletions
|
@ -31,7 +31,7 @@ public class PluginCollection {
|
||||||
System.loadLibrary("NativeFormats-v4");
|
System.loadLibrary("NativeFormats-v4");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static PluginCollection ourInstance;
|
private static volatile PluginCollection ourInstance;
|
||||||
|
|
||||||
private final List<BuiltinFormatPlugin> myBuiltinPlugins =
|
private final List<BuiltinFormatPlugin> myBuiltinPlugins =
|
||||||
new LinkedList<BuiltinFormatPlugin>();
|
new LinkedList<BuiltinFormatPlugin>();
|
||||||
|
@ -39,16 +39,23 @@ public class PluginCollection {
|
||||||
new LinkedList<ExternalFormatPlugin>();
|
new LinkedList<ExternalFormatPlugin>();
|
||||||
|
|
||||||
public static PluginCollection Instance() {
|
public static PluginCollection Instance() {
|
||||||
|
if (ourInstance == null) {
|
||||||
|
createInstance();
|
||||||
|
}
|
||||||
|
return ourInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static synchronized void createInstance() {
|
||||||
if (ourInstance == null) {
|
if (ourInstance == null) {
|
||||||
ourInstance = new PluginCollection();
|
ourInstance = new PluginCollection();
|
||||||
|
|
||||||
// This code can not be moved to constructor because nativePlugins() is a native method
|
// This code cannot be moved to constructor
|
||||||
|
// because nativePlugins() is a native method
|
||||||
for (NativeFormatPlugin p : ourInstance.nativePlugins()) {
|
for (NativeFormatPlugin p : ourInstance.nativePlugins()) {
|
||||||
ourInstance.myBuiltinPlugins.add(p);
|
ourInstance.myBuiltinPlugins.add(p);
|
||||||
System.err.println("native plugin: " + p);
|
System.err.println("native plugin: " + p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ourInstance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void deleteInstance() {
|
public static void deleteInstance() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue