summaryrefslogtreecommitdiff
path: root/src/aarch64
diff options
context:
space:
mode:
authorSteve MacLean <Steve.MacLean@Microsoft.com>2020-05-21 18:04:59 -0400
committerSteve MacLean <Steve.MacLean@Microsoft.com>2020-05-21 18:04:59 -0400
commit45fc222a00f239a16f1420c4446113e8a730b75a (patch)
tree780d7a25a4a94411f4769a6b6ef9d6fb5c64f794 /src/aarch64
parentda8dc856ab5646e04160060aae9425db3f5428ce (diff)
downloadlibunwind-45fc222a00f239a16f1420c4446113e8a730b75a.tar.gz
Use C11 atomics
Diffstat (limited to 'src/aarch64')
-rw-r--r--src/aarch64/Gglobal.c6
-rw-r--r--src/aarch64/Ginit_local.c2
-rw-r--r--src/aarch64/Ginit_remote.c2
3 files changed, 5 insertions, 5 deletions
diff --git a/src/aarch64/Gglobal.c b/src/aarch64/Gglobal.c
index 72e36b2d..854b5491 100644
--- a/src/aarch64/Gglobal.c
+++ b/src/aarch64/Gglobal.c
@@ -28,7 +28,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
#include "dwarf_i.h"
HIDDEN define_lock (aarch64_lock);
-HIDDEN int tdep_init_done;
+HIDDEN atomic_bool tdep_init_done = 0;
HIDDEN void
tdep_init (void)
@@ -39,7 +39,7 @@ tdep_init (void)
lock_acquire (&aarch64_lock, saved_mask);
{
- if (tdep_init_done)
+ if (atomic_load(&tdep_init_done))
/* another thread else beat us to it... */
goto out;
@@ -50,7 +50,7 @@ tdep_init (void)
#ifndef UNW_REMOTE_ONLY
aarch64_local_addr_space_init ();
#endif
- tdep_init_done = 1; /* signal that we're initialized... */
+ atomic_store(&tdep_init_done, 1); /* signal that we're initialized... */
}
out:
lock_release (&aarch64_lock, saved_mask);
diff --git a/src/aarch64/Ginit_local.c b/src/aarch64/Ginit_local.c
index 69d4ed38..3f0080ad 100644
--- a/src/aarch64/Ginit_local.c
+++ b/src/aarch64/Ginit_local.c
@@ -41,7 +41,7 @@ unw_init_local_common (unw_cursor_t *cursor, unw_context_t *uc, unsigned use_pre
{
struct cursor *c = (struct cursor *) cursor;
- if (!tdep_init_done)
+ if (!atomic_load(&tdep_init_done))
tdep_init ();
Debug (1, "(cursor=%p)\n", c);
diff --git a/src/aarch64/Ginit_remote.c b/src/aarch64/Ginit_remote.c
index 9b8ba5b8..26d11ba9 100644
--- a/src/aarch64/Ginit_remote.c
+++ b/src/aarch64/Ginit_remote.c
@@ -33,7 +33,7 @@ unw_init_remote (unw_cursor_t *cursor, unw_addr_space_t as, void *as_arg)
#else /* !UNW_LOCAL_ONLY */
struct cursor *c = (struct cursor *) cursor;
- if (!tdep_init_done)
+ if (!atomic_load(&tdep_init_done))
tdep_init ();
Debug (1, "(cursor=%p)\n", c);