Commit d8377411 authored by Marek Chalupa's avatar Marek Chalupa Committed by Pekka Paalanen

tests: use nanosleep instead of usleep

man usleep says that bahaviour of using usleep with SIGALRM signal
is unspecified. So create our own usleep that calls nanosleep instead.
Signed-off-by: default avatarMarek Chalupa <mchqwerty@gmail.com>
Reviewed-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
parent 44bf13ba
......@@ -333,6 +333,21 @@ register_reading(struct wl_display *display)
assert(wl_display_flush(display) >= 0);
}
#define USEC_TO_NSEC(n) (1000 * (n))
/* since we are using alarm() and SIGABRT, we can not
* use usleep function (see 'man usleep') */
static void
test_usleep(useconds_t usec)
{
struct timespec ts = {
.tv_sec = 0,
.tv_nsec = USEC_TO_NSEC(usec)
};
assert(nanosleep(&ts, NULL) == 0);
}
/* create thread that will call prepare+read so that
* it will block */
static pthread_t
......@@ -349,8 +364,8 @@ create_thread(struct client *c, void *(*func)(void*))
* so call usleep once again after the loop ends - it should
* be sufficient... */
while (c->display_stopped == 0)
usleep(500);
usleep(10000);
test_usleep(500);
test_usleep(10000);
return thread;
}
......@@ -517,8 +532,8 @@ threading_read_after_error(void)
/* make sure thread is sleeping */
while (c->display_stopped == 0)
usleep(500);
usleep(10000);
test_usleep(500);
test_usleep(10000);
assert(wl_display_read_events(c->wl_display) == -1);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment