Ensure worker is synced up when making structural changes to VM. Fixes #93.

This commit is contained in:
Florian Nücke
2022-01-13 15:29:06 +01:00
parent d0ff66f721
commit 12847643a9

View File

@@ -63,6 +63,8 @@ public final class VMDeviceBusAdapter {
}
public void unmount() {
globalContext.joinWorkerThread();
for (final VMDevice device : deviceContexts.keySet()) {
device.unmount();
}
@@ -71,6 +73,8 @@ public final class VMDeviceBusAdapter {
}
public void suspend() {
globalContext.joinWorkerThread();
for (final VMDevice device : deviceContexts.keySet()) {
device.suspend();
}
@@ -79,6 +83,8 @@ public final class VMDeviceBusAdapter {
}
public void addDevices(final Collection<Device> devices) {
globalContext.joinWorkerThread();
for (final Device device : devices) {
if (device instanceof final VMDevice vmDevice) {
final ManagedVMContext context = deviceContexts.put(vmDevice, null);
@@ -92,6 +98,8 @@ public final class VMDeviceBusAdapter {
}
public void removeDevices(final Collection<Device> devices) {
globalContext.joinWorkerThread();
for (final Device device : devices) {
if (device instanceof final VMDevice vmDevice) {
vmDevice.unmount();