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/atomic_add-bench.c | |
parent | d406015b6a1e0cc8eda10816ddbecd7917f79297 (diff) |
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/atomic_add-bench.c')
-rw-r--r-- | tests/atomic_add-bench.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/tests/atomic_add-bench.c b/tests/atomic_add-bench.c index 2f6c72f63a..5666f6bbff 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++) { |