From 7ceef50ec9075b546eb84654bd0d1f42d0fe26d1 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 12 Nov 2002 08:31:50 +0000 Subject: [PATCH] * sysdeps/ia64/dl-fptr.c [_LIBC_REENTRANT]: Include instead of . [_LIBC_REENTRANT] (lock, unlock): Use __sync_lock_* macros instead of testandset. From Ian Wienand . --- ChangeLog | 8 ++++++++ sysdeps/ia64/dl-fptr.c | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6b54fb1..20515ef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2002-11-12 Roland McGrath + + * sysdeps/ia64/dl-fptr.c [_LIBC_REENTRANT]: Include + instead of . + [_LIBC_REENTRANT] (lock, unlock): Use __sync_lock_* macros instead of + testandset. + From Ian Wienand . + 2002-11-10 Roland McGrath * libio/bug-wfflush.c (do_test): Call rewind instead of fsetpos. diff --git a/sysdeps/ia64/dl-fptr.c b/sysdeps/ia64/dl-fptr.c index 809e113..929d195 100644 --- a/sysdeps/ia64/dl-fptr.c +++ b/sysdeps/ia64/dl-fptr.c @@ -27,7 +27,7 @@ #include #include #ifdef _LIBC_REENTRANT -# include +# include # include # include #endif @@ -73,7 +73,7 @@ local = if (!__sigismember (&(l)->full_sigset, SIGINT)) \ __sigfillset (&(l)->full_sigset); \ \ - while (testandset ((int *) &(l)->lock)) \ + while (__sync_lock_test_and_set (&(l)->lock, 1)) \ { \ struct timespec ts; \ if (i > 0) \ @@ -88,7 +88,7 @@ local = __sigprocmask (SIG_BLOCK, &(l)->full_sigset, &_saved_set); # define unlock(l) \ __sigprocmask (SIG_SETMASK, &_saved_set, NULL); \ - (l)->lock = 0; \ + __sync_lock_release (&(l)->lock); \ } #else # define lock(l) -- 2.7.4