On Tue, Jul 19, 2016 at 06:29:20PM +0200, Marek Olšák wrote: > From: Marek Olšák <marek.ol...@amd.com> > > v2: handle EINTR, remove backslashes
I was a bit surprised by the way you use clock_nanosleep(), but I checked the man and you're right :) Reviewed-by: Eric Engestrom <eric.engest...@imgtec.com> > --- > src/gallium/auxiliary/os/os_time.c | 16 ++++++++++++++-- > src/gallium/auxiliary/os/os_time.h | 4 ---- > 2 files changed, 14 insertions(+), 6 deletions(-) > > diff --git a/src/gallium/auxiliary/os/os_time.c > b/src/gallium/auxiliary/os/os_time.c > index 3d2e416..e169139 100644 > --- a/src/gallium/auxiliary/os/os_time.c > +++ b/src/gallium/auxiliary/os/os_time.c > @@ -40,6 +40,7 @@ > # include <time.h> /* timeval */ > # include <sys/time.h> /* timeval */ > # include <sched.h> /* sched_yield */ > +# include <errno.h> > #elif defined(PIPE_SUBSYSTEM_WINDOWS_USER) > # include <windows.h> > #else > @@ -81,19 +82,30 @@ os_time_get_nano(void) > } > > > -#if defined(PIPE_SUBSYSTEM_WINDOWS_USER) > > void > os_time_sleep(int64_t usecs) > { > +#if defined(PIPE_OS_LINUX) > + struct timespec time; > + time.tv_sec = usecs / 1000000; > + time.tv_nsec = (usecs % 1000000) * 1000; > + while (clock_nanosleep(CLOCK_MONOTONIC, 0, &time, &time) == EINTR); > + > +#elif defined(PIPE_OS_UNIX) > + usleep(usecs); > + > +#elif defined(PIPE_SUBSYSTEM_WINDOWS_USER) > DWORD dwMilliseconds = (DWORD) ((usecs + 999) / 1000); > /* Avoid Sleep(O) as that would cause to sleep for an undetermined > duration */ > if (dwMilliseconds) { > Sleep(dwMilliseconds); > } > +#else > +# error Unsupported OS > +#endif > } > > -#endif > > > int64_t > diff --git a/src/gallium/auxiliary/os/os_time.h > b/src/gallium/auxiliary/os/os_time.h > index 9312e02..ca0bdd5 100644 > --- a/src/gallium/auxiliary/os/os_time.h > +++ b/src/gallium/auxiliary/os/os_time.h > @@ -70,12 +70,8 @@ os_time_get(void) > /* > * Sleep. > */ > -#if defined(PIPE_OS_UNIX) > -#define os_time_sleep(_usecs) usleep(_usecs) > -#else > void > os_time_sleep(int64_t usecs); > -#endif > > > /* > -- > 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev