summaryrefslogtreecommitdiff
path: root/libvirtaio.py
diff options
context:
space:
mode:
authorWojtek Porczyk <woju@invisiblethingslab.com>2017-09-14 02:24:29 +0200
committerDaniel P. Berrange <berrange@redhat.com>2017-09-26 11:01:33 +0100
commitcc82a945286f011a465787b0fe998b396169fb18 (patch)
tree766a10ac54d4e2e91c99afc6392e07cc50ca5dad /libvirtaio.py
parenta5cc6da2c8d54f42416860f36abba629f648b228 (diff)
downloadlibvirt-python-cc82a945286f011a465787b0fe998b396169fb18.tar.gz
libvirtaio: do not double-add callbacks
This was a harmless bug, without any impact, but it is wrong to manage the collection of callbacks from it's members. Signed-off-by: Wojtek Porczyk <woju@invisiblethingslab.com>
Diffstat (limited to 'libvirtaio.py')
-rw-r--r--libvirtaio.py9
1 files changed, 4 insertions, 5 deletions
diff --git a/libvirtaio.py b/libvirtaio.py
index d962e64..239561d 100644
--- a/libvirtaio.py
+++ b/libvirtaio.py
@@ -63,11 +63,6 @@ class Callback(object):
self.cb = cb
self.opaque = opaque
- assert self.iden not in self.impl.callbacks, \
- 'found {} callback: {!r}'.format(
- self.iden, self.impl.callbacks[self.iden])
- self.impl.callbacks[self.iden] = self
-
def __repr__(self):
return '<{} iden={}>'.format(self.__class__.__name__, self.iden)
@@ -324,6 +319,8 @@ class virEventAsyncIOImpl(object):
'''
callback = FDCallback(self, cb, opaque,
descriptor=self.descriptors[fd], event=event)
+ assert callback.iden not in self.callbacks
+
self.log.debug('add_handle(fd=%d, event=%d, cb=..., opaque=...) = %d',
fd, event, callback.iden)
self.callbacks[callback.iden] = callback
@@ -376,6 +373,8 @@ class virEventAsyncIOImpl(object):
https://libvirt.org/html/libvirt-libvirt-event.html#virEventAddTimeoutFunc
'''
callback = TimeoutCallback(self, cb, opaque)
+ assert callback.iden not in self.callbacks
+
self.log.debug('add_timeout(timeout=%d, cb=..., opaque=...) = %d',
timeout, callback.iden)
self.callbacks[callback.iden] = callback