KVM test: kvm_subprocess.py: use only unbound methods as close() hooks

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@redhat.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3846 592f7852-d20e-0410-864c-8624ca9c26a4
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 @@
         _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 @@
         """
         # 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)