Reset the flag only after all relevant child threads have been joined. Resetting the flag in one of the child threads causes a race condition, where the other child threads will not detect that the flag was set and will therefore not terminate. Signed-off-by: Michael Goldish <mgoldish@xxxxxxxxxx> --- client/tests/kvm/kvm_subprocess.py | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/client/tests/kvm/kvm_subprocess.py b/client/tests/kvm/kvm_subprocess.py index 580f71d..8321bb3 100755 --- a/client/tests/kvm/kvm_subprocess.py +++ b/client/tests/kvm/kvm_subprocess.py @@ -561,6 +561,7 @@ def kill_tail_threads(): for t in threading.enumerate(): if hasattr(t, "name") and t.name.startswith("tail_thread"): t.join(10) + _thread_kill_requested = False class kvm_tail(kvm_spawn): @@ -706,7 +707,6 @@ class kvm_tail(kvm_spawn): while True: global _thread_kill_requested if _thread_kill_requested: - _thread_kill_requested = False return try: # See if there's any data to read from the pipe -- 1.5.5.6 -- 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