global var replaced by thread local
This commit is contained in:
@@ -212,8 +212,8 @@ public class CompileEnvironment {
|
||||
method.setAccessible(true);
|
||||
method.invoke(null);
|
||||
|
||||
ArrayList<Module> answer = new ArrayList<Module>(AllModules.modules);
|
||||
AllModules.modules.clear();
|
||||
ArrayList<Module> answer = new ArrayList<Module>(AllModules.modules.get());
|
||||
AllModules.modules.get().clear();
|
||||
return answer;
|
||||
}
|
||||
catch (Exception e) {
|
||||
|
||||
@@ -6,7 +6,7 @@ import jet.modules.*
|
||||
fun module(name: String, callback: ModuleBuilder.() -> Unit) {
|
||||
val builder = ModuleBuilder(name)
|
||||
builder.callback()
|
||||
AllModules.modules?.add(builder)
|
||||
AllModules.modules.sure().get()?.add(builder)
|
||||
}
|
||||
|
||||
class SourcesBuilder(val parent: ModuleBuilder) {
|
||||
|
||||
@@ -22,5 +22,14 @@ package jet.modules;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class AllModules {
|
||||
public static final ArrayList<Module> modules = new ArrayList<Module>();
|
||||
|
||||
public static final ThreadLocal<ArrayList<Module>> modules = new ThreadLocal<ArrayList<Module>>() {
|
||||
@Override
|
||||
protected ArrayList<Module> initialValue() {
|
||||
return new ArrayList<Module>();
|
||||
}
|
||||
};
|
||||
|
||||
private AllModules() {
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user