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) {
|
||||
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) {
|
||||
if (activeTaskCount.decrementAndGet() == 0) {
|
||||
activeTaskMonitor.notifyAll();
|
||||
}
|
||||
}
|
||||
|
@ -131,11 +133,11 @@ public class DependencyChecker {
|
|||
|
||||
public void checkDependencies() {
|
||||
while (true) {
|
||||
try {
|
||||
synchronized (activeTaskMonitor) {
|
||||
if (activeTaskCount.get() == 0 || exceptionOccured.get() != null) {
|
||||
break;
|
||||
}
|
||||
try {
|
||||
synchronized (activeTaskMonitor) {
|
||||
activeTaskMonitor.wait();
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user