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.
This commit is contained in:
James Prestwood 2021-08-13 15:45:54 -07:00 committed by Denis Kenzior
parent cb4f1d2a99
commit 7b98a6ed9c
1 changed files with 4 additions and 2 deletions

View File

@ -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)