From: Ulrich Drepper Date: Fri, 13 Dec 2002 23:05:35 +0000 (+0000) Subject: (test_loaded): Don't overwrite a value another thread might have found. X-Git-Tag: upstream/2.30~20501 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3b7c07d8f2a4ab7317a630c3240e2fc5f5d4e681;p=external%2Fglibc.git (test_loaded): Don't overwrite a value another thread might have found. --- 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);