On Tue, 9 Sep 2014 11:11:52 +0200 Marek Chalupa <[email protected]> wrote:
> 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: Marek Chalupa <[email protected]> > --- > tests/display-test.c | 23 +++++++++++++++++++---- > 1 file changed, 19 insertions(+), 4 deletions(-) > > diff --git a/tests/display-test.c b/tests/display-test.c > index 1289866..451cabd 100644 > --- a/tests/display-test.c > +++ b/tests/display-test.c > @@ -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); > Pushed. Thanks, pq _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
