From 2d5b9547d1dc53eb361a3ee3372a72759bcc51c6 Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Mon, 30 Mar 2020 22:00:35 +0200 Subject: [PATCH] yield in spinlock on aarch64 --- src/libsodium/sodium/core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libsodium/sodium/core.c b/src/libsodium/sodium/core.c index 7a6943d1..ba875855 100644 --- a/src/libsodium/sodium/core.c +++ b/src/libsodium/sodium/core.c @@ -151,7 +151,9 @@ sodium_crit_enter(void) # ifdef HAVE_NANOSLEEP (void) nanosleep(&q, NULL); # elif defined(__x86_64__) || defined(__i386__) - __asm__ __volatile__ ("pause"); + __asm__ __volatile__ ("pause":::"memory"); +# elif defined(__aarch64__) + __asm__ __volatile__ ("yield":::"memory"); # endif } return 0;