From 7b98a6ed9cceb84e92ba321342e8d7b527bf7f52 Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Fri, 13 Aug 2021 15:45:54 -0700 Subject: [PATCH] test-runner: only remove GLib timeout if it exists There was a race condition here where the GLib timeout could have fired but the test function returned successfully prior to the end of the while loop. This would end up causing source_remove to print a warning that the source did not exist. Instead check if the timeout fired prior to removing it. --- tools/test-runner | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/test-runner b/tools/test-runner index a7eaf5b6..54985b7a 100755 --- a/tools/test-runner +++ b/tools/test-runner @@ -751,10 +751,12 @@ class Namespace: try: ret = func(*args) if ret: - GLib.source_remove(timeout) + if not done.value: + GLib.source_remove(timeout) return ret except Exception as e: - GLib.source_remove(timeout) + if not done.value: + GLib.source_remove(timeout) raise e sleep(0.1)