mirror of
https://github.com/Eaglercraft-TeaVM-Fork/eagler-teavm.git
synced 2024-12-22 16:14:10 -08:00
Fixes threading issue in DependencyChecker
This commit is contained in:
parent
2214433d6c
commit
ca29e10aeb
|
@ -106,7 +106,9 @@ public class DependencyChecker {
|
|||
}
|
||||
|
||||
void schedule(final Runnable runnable) {
|
||||
activeTaskCount.incrementAndGet();
|
||||
synchronized (activeTaskMonitor) {
|
||||
activeTaskCount.incrementAndGet();
|
||||
}
|
||||
try {
|
||||
executor.execute(new Runnable() {
|
||||
@Override public void run() {
|
||||
|
@ -117,8 +119,8 @@ public class DependencyChecker {
|
|||
exceptionOccured.compareAndSet(null, e);
|
||||
executor.shutdownNow();
|
||||
}
|
||||
if (activeTaskCount.decrementAndGet() == 0) {
|
||||
synchronized (activeTaskMonitor) {
|
||||
synchronized (activeTaskMonitor) {
|
||||
if (activeTaskCount.decrementAndGet() == 0) {
|
||||
activeTaskMonitor.notifyAll();
|
||||
}
|
||||
}
|
||||
|
@ -131,11 +133,11 @@ public class DependencyChecker {
|
|||
|
||||
public void checkDependencies() {
|
||||
while (true) {
|
||||
if (activeTaskCount.get() == 0 || exceptionOccured.get() != null) {
|
||||
break;
|
||||
}
|
||||
try {
|
||||
synchronized (activeTaskMonitor) {
|
||||
if (activeTaskCount.get() == 0 || exceptionOccured.get() != null) {
|
||||
break;
|
||||
}
|
||||
activeTaskMonitor.wait();
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
|
|
|
@ -252,7 +252,7 @@ class ClassRefsRenamer implements InstructionVisitor {
|
|||
|
||||
@Override
|
||||
public void visit(InvokeInstruction insn) {
|
||||
String className = classNameMapper.map(insn.getMethod().getClassName());
|
||||
String className = classNameMapper.map(insn.getMethod().getClassName());
|
||||
ValueType[] signature = insn.getMethod().getSignature();
|
||||
for (int i = 0; i < signature.length; ++i) {
|
||||
signature[i] = rename(signature[i]);
|
||||
|
|
Loading…
Reference in New Issue
Block a user