Avoid possible class loading deadlock

This commit is contained in:
Guillaume Nodet
2021-02-12 09:25:34 +01:00
parent e2a419a870
commit 28de1df47d
4 changed files with 11 additions and 11 deletions

View File

@@ -55,10 +55,6 @@ public abstract class Message {
public static final int TRANSFER_SUCCEEDED = 21;
public static final int TRANSFER_FAILED = 22;
public static final BareMessage KEEP_ALIVE_SINGLETON = new BareMessage(KEEP_ALIVE);
public static final BareMessage STOP_SINGLETON = new BareMessage(STOP);
public static final BareMessage CANCEL_BUILD_SINGLETON = new BareMessage(CANCEL_BUILD);
final int type;
Message(int type) {
@@ -588,6 +584,10 @@ public abstract class Message {
public static class BareMessage extends Message {
public static final BareMessage KEEP_ALIVE_SINGLETON = new BareMessage(KEEP_ALIVE);
public static final BareMessage STOP_SINGLETON = new BareMessage(STOP);
public static final BareMessage CANCEL_BUILD_SINGLETON = new BareMessage(CANCEL_BUILD);
private BareMessage(int type) {
super(type);
}

View File

@@ -152,12 +152,12 @@ public class TerminalOutput implements ClientOutput {
terminal.enterRawMode();
Thread mainThread = Thread.currentThread();
daemonDispatch = m -> {
if (m == Message.CANCEL_BUILD_SINGLETON) {
if (m == Message.BareMessage.CANCEL_BUILD_SINGLETON) {
mainThread.interrupt();
}
};
this.previousIntHandler = terminal.handle(Terminal.Signal.INT,
sig -> daemonDispatch.accept(Message.CANCEL_BUILD_SINGLETON));
sig -> daemonDispatch.accept(Message.BareMessage.CANCEL_BUILD_SINGLETON));
this.display = new Display(terminal, false);
this.log = logFile == null ? new MessageCollector() : new FileLog(logFile);
if (!dumb) {