diff options
author | Alex Bennée <alex.bennee@linaro.org> | 2019-01-11 13:50:02 +0000 |
---|---|---|
committer | Alex Bennée <alex.bennee@linaro.org> | 2019-01-14 14:52:30 +0000 |
commit | eb4f8e100f1ffce3be797ac56dcad031ffef3b8f (patch) | |
tree | 37f67443b0160e101cf814b728f7bb8a08f052b0 /tests | |
parent | d406015b6a1e0cc8eda10816ddbecd7917f79297 (diff) | |
download | qemu-eb4f8e100f1ffce3be797ac56dcad031ffef3b8f.zip qemu-eb4f8e100f1ffce3be797ac56dcad031ffef3b8f.tar.gz qemu-eb4f8e100f1ffce3be797ac56dcad031ffef3b8f.tar.bz2 |
tests: use g_usleep instead of rem = sleep(time)
Relying on sleep to always return having slept isn't safe as a signal
may have occurred. If signals are constantly incoming the program will
never reach its termination condition. This is believed to be the
mechanism causing time outs for qht-test in Travis.
The glib g_usleep() deals with all of this for us so lets use it instead.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/atomic64-bench.c | 6 | ||||
-rw-r--r-- | tests/atomic_add-bench.c | 6 | ||||
-rw-r--r-- | tests/qht-bench.c | 6 |
3 files changed, 6 insertions, 12 deletions
diff --git a/tests/atomic64-bench.c b/tests/atomic64-bench.c index 7169256..121a8c1 100644 --- a/tests/atomic64-bench.c +++ b/tests/atomic64-bench.c @@ -74,16 +74,14 @@ static void *thread_func(void *arg) static void run_test(void) { - unsigned int remaining; unsigned int i; while (atomic_read(&n_ready_threads) != n_threads) { cpu_relax(); } + atomic_set(&test_start, true); - do { - remaining = sleep(duration); - } while (remaining); + g_usleep(duration * G_USEC_PER_SEC); atomic_set(&test_stop, true); for (i = 0; i < n_threads; i++) { diff --git a/tests/atomic_add-bench.c b/tests/atomic_add-bench.c index 2f6c72f..5666f6b 100644 --- a/tests/atomic_add-bench.c +++ b/tests/atomic_add-bench.c @@ -76,16 +76,14 @@ static void *thread_func(void *arg) static void run_test(void) { - unsigned int remaining; unsigned int i; while (atomic_read(&n_ready_threads) != n_threads) { cpu_relax(); } + atomic_set(&test_start, true); - do { - remaining = sleep(duration); - } while (remaining); + g_usleep(duration * G_USEC_PER_SEC); atomic_set(&test_stop, true); for (i = 0; i < n_threads; i++) { diff --git a/tests/qht-bench.c b/tests/qht-bench.c index ab4e708..e3b512f 100644 --- a/tests/qht-bench.c +++ b/tests/qht-bench.c @@ -398,16 +398,14 @@ static void pr_stats(void) static void run_test(void) { - unsigned int remaining; int i; while (atomic_read(&n_ready_threads) != n_rw_threads + n_rz_threads) { cpu_relax(); } + atomic_set(&test_start, true); - do { - remaining = sleep(duration); - } while (remaining); + g_usleep(duration * G_USEC_PER_SEC); atomic_set(&test_stop, true); for (i = 0; i < n_rw_threads; i++) { |