connection: Fix race when updating conn.vms
We update the canonical conn.vms list in an idle callback, so any parts of the main UI thread won't see the conn.vms change while they are iterating over it. Problem with this, is that if multiple ticks() are scheduled before the first idle handler has a chance to run, we can overwrite the VM list can fail to be correctly updated. Fix this by only updating 'vms' if it actually changed.
This commit is contained in:
parent
078e1a4d05
commit
3f27bc1bd1
|
@ -1160,11 +1160,16 @@ class vmmConnection(vmmGObject):
|
|||
if not self._backend.is_open():
|
||||
return
|
||||
|
||||
self.vms = vms
|
||||
self.nodedevs = nodedevs
|
||||
self.interfaces = interfaces
|
||||
self.pools = pools
|
||||
self.nets = nets
|
||||
if pollvm:
|
||||
self.vms = vms
|
||||
if pollnet:
|
||||
self.nets = nets
|
||||
if polliface:
|
||||
self.interfaces = interfaces
|
||||
if pollpool:
|
||||
self.pools = pools
|
||||
if pollnodedev:
|
||||
self.nodedevs = nodedevs
|
||||
|
||||
# Make sure device polling is setup
|
||||
if not self.netdev_initialized:
|
||||
|
|
Loading…
Reference in New Issue