Previous commit didn't work, let's try it again.
This commit is contained in:
@@ -55,10 +55,6 @@ export default class QEMUVM extends EventEmitter {
|
||||
this.processRestartErrorLevel = 0;
|
||||
this.expectedExit = false;
|
||||
this.qmpClient = new QMPClient(this.qmpSock, this.qmpType);
|
||||
this.qmpClient.on('qmpshutdown', () => {
|
||||
console.log("[INFO] QEMU requested shutdown, restarting...");
|
||||
this.Resume();
|
||||
});
|
||||
this.qmpClient.on('connected', () => this.qmpConnected());
|
||||
this.qmpClient.on('close', () => this.qmpClosed());
|
||||
}
|
||||
@@ -217,14 +213,6 @@ export default class QEMUVM extends EventEmitter {
|
||||
this.Start();
|
||||
}
|
||||
|
||||
Resume() : Promise<void> {
|
||||
return new Promise(async (res, rej) => {
|
||||
if (this.expectedExit) {res(); return;}
|
||||
await this.qmpClient.execute({ "execute": "cont" });
|
||||
res();
|
||||
});
|
||||
}
|
||||
|
||||
Stop() : Promise<void> {
|
||||
return new Promise<void>(async (res, rej) => {
|
||||
if (this.expectedExit) {res(); return;}
|
||||
|
||||
@@ -68,10 +68,16 @@ export default class QMPClient extends EventEmitter {
|
||||
else if(msg.event !== undefined) {
|
||||
switch(msg.event) {
|
||||
case "STOP":
|
||||
{
|
||||
console.log("[INFO] Resetting QEMU...");
|
||||
this.reboot();
|
||||
break;
|
||||
}
|
||||
case "RESET":
|
||||
{
|
||||
this.emit("qmpshutdown");
|
||||
break
|
||||
console.log("[INFO] QEMU reset event occurred");
|
||||
this.resume();
|
||||
break;
|
||||
};
|
||||
default: {
|
||||
this.emit("qmpreturn", '');
|
||||
@@ -104,6 +110,13 @@ export default class QMPClient extends EventEmitter {
|
||||
await this.execute({"execute": "system_reset"});
|
||||
}
|
||||
|
||||
async resume() {
|
||||
if (!this.connected)
|
||||
return;
|
||||
|
||||
await this.execute({"execute": "cont"});
|
||||
}
|
||||
|
||||
async ExitQEMU() {
|
||||
if (!this.connected)
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user