mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-03 17:59: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");
|
||||
}
|
||||
|
||||
private static PluginCollection ourInstance;
|
||||
private static volatile PluginCollection ourInstance;
|
||||
|
||||
private final List<BuiltinFormatPlugin> myBuiltinPlugins =
|
||||
new LinkedList<BuiltinFormatPlugin>();
|
||||
|
@ -39,16 +39,23 @@ public class PluginCollection {
|
|||
new LinkedList<ExternalFormatPlugin>();
|
||||
|
||||
public static PluginCollection Instance() {
|
||||
if (ourInstance == null) {
|
||||
createInstance();
|
||||
}
|
||||
return ourInstance;
|
||||
}
|
||||
|
||||
private static synchronized void createInstance() {
|
||||
if (ourInstance == null) {
|
||||
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()) {
|
||||
ourInstance.myBuiltinPlugins.add(p);
|
||||
System.err.println("native plugin: " + p);
|
||||
}
|
||||
}
|
||||
return ourInstance;
|
||||
}
|
||||
|
||||
public static void deleteInstance() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue