[KVM-AUTOTEST PATCH 2/3] KVM test: kvm_subprocess.py: use only unbound methods as close() hooks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



close() will pass 'self' as a parameter to the hook functions, i.e. it will
call hook(self) instead of just hook(), thus allowing the use of unbound
methods rather than bound ones.

This allows us to avoid self referencing: if a bound method is used, a
reference to it is kept in the class instance, and if the method is bound to
the same instance then we have a self-reference that prevents garbage
collection.

Signed-off-by: Michael Goldish <mgoldish@xxxxxxxxxx>
---
 client/tests/kvm/kvm_subprocess.py |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/client/tests/kvm/kvm_subprocess.py b/client/tests/kvm/kvm_subprocess.py
index ede8081..a625315 100755
--- a/client/tests/kvm/kvm_subprocess.py
+++ b/client/tests/kvm/kvm_subprocess.py
@@ -490,7 +490,7 @@ class kvm_spawn:
         _wait(self.lock_server_running_filename)
         # Call all cleanup routines
         for hook in self.close_hooks:
-            hook()
+            hook(self)
         # Close reader file descriptors
         for fd in self.reader_fds.values():
             try:
@@ -583,7 +583,7 @@ class kvm_tail(kvm_spawn):
         """
         # Add a reader and a close hook
         self._add_reader("tail")
-        self._add_close_hook(self._join_thread)
+        self._add_close_hook(kvm_tail._join_thread)
 
         # Init the superclass
         kvm_spawn.__init__(self, command, id, echo, linesep)
-- 
1.5.4.1

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux