From 3b7c07d8f2a4ab7317a630c3240e2fc5f5d4e681 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 13 Dec 2002 23:05:35 +0000 Subject: [PATCH] (test_loaded): Don't overwrite a value another thread might have found. --- nptl/forward.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nptl/forward.c b/nptl/forward.c index 441a7f2..6c278c0 100644 --- a/nptl/forward.c +++ b/nptl/forward.c @@ -22,6 +22,7 @@ #include #include +#include #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2) @@ -33,7 +34,7 @@ test_loaded (void) { /* While we are getting the result set the handle to (void *) -1 to avoid recursive calls. */ - libpthread_handle = (void *) -1l; + atomic_compare_and_exchange_acq (&libpthread_handle, (void *) -1l, NULL); void *h = __libc_dlopen_mode ("libpthread.so.0", RTLD_LAZY | RTLD_NOLOAD); -- 2.7.4