Add more logging for cancellation, and fix filtering logic.

BUG=chrome-os-partner:8497
TEST=Manual

Change-Id: I31faa9dfa0115d0174ebe1d623ca3e6cc5d33516
Reviewed-on: https://gerrit.chromium.org/gerrit/18214
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Commit-Ready: Jon Salz <jsalz@chromium.org>
Tested-by: Jon Salz <jsalz@chromium.org>
diff --git a/goofy.py b/goofy.py
index 06f0bb3..432c50f 100755
--- a/goofy.py
+++ b/goofy.py
@@ -105,13 +105,13 @@
         for i in range(25):  # Try 25 times (200 ms between tries)
             for pid in pids:
                 try:
+                    logging.info("Sending signal %s to %d" % (sig, pid))
                     os.kill(pid, sig)
                 except OSError:
                     pass
-                pids[:] = [pid for pid in pids
-                           if is_process_alive(pid)]
-                if not pids:
-                    return
+            pids = filter(is_process_alive, pids)
+            if not pids:
+                return
             time.sleep(0.2)  # Sleep 200 ms and try again
 
     logging.warn('Failed to stop %s process. Ignoring.', caption)