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 <mgold...@redhat.com>
---
 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to