[Mesa-dev] [PATCH] util/futex: use futex syscall on OpenBSD
Marek Olšák
maraeo at gmail.com
Mon Dec 2 22:26:19 UTC 2019
Pushed. Thanks!
Marek
On Sat, Nov 30, 2019 at 10:19 AM Jonathan Gray <jsg at jsg.id.au> wrote:
> Make use of the futex syscall added in OpenBSD 6.2.
>
> Signed-off-by: Jonathan Gray <jsg at jsg.id.au>
> ---
> src/util/futex.h | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/src/util/futex.h b/src/util/futex.h
> index 268af92882a..cf8dd0206c9 100644
> --- a/src/util/futex.h
> +++ b/src/util/futex.h
> @@ -85,6 +85,24 @@ static inline int futex_wait(uint32_t *addr, int32_t
> value, struct timespec *tim
> return _umtx_op(addr, UMTX_OP_WAIT_UINT, (uint32_t)value, uaddr,
> uaddr2) == -1 ? errno : 0;
> }
>
> +#elif defined(__OpenBSD__)
> +
> +#include <sys/time.h>
> +#include <sys/futex.h>
> +
> +static inline int futex_wake(uint32_t *addr, int count)
> +{
> + return futex(addr, FUTEX_WAKE, count, NULL, NULL);
> +}
> +
> +static inline int futex_wait(uint32_t *addr, int32_t value, const struct
> timespec *timeout)
> +{
> + struct timespec tsrel, tsnow;
> + clock_gettime(CLOCK_MONOTONIC, &tsnow);
> + timespecsub(timeout, &tsrel, &tsrel);
> + return futex(addr, FUTEX_WAIT, value, &tsrel, NULL);
> +}
> +
> #endif
>
> #endif /* UTIL_FUTEX_H */
> --
> 2.24.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20191202/e00c054c/attachment.html>
More information about the mesa-dev
mailing list