aboutsummaryrefslogtreecommitdiff
path: root/malloc/set-freeres.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-12-01 21:08:31 +0000
committerUlrich Drepper <drepper@redhat.com>1999-12-01 21:08:31 +0000
commit4a0f14bc365e9ed5fd7da31c740935273e69a0b7 (patch)
tree873d4da548d7f88cb741103173b89e9de54ccb10 /malloc/set-freeres.c
parentf0d8cfd73c91a95ac1faa6702e75bfa821d57e05 (diff)
downloadglibc-4a0f14bc365e9ed5fd7da31c740935273e69a0b7.tar
glibc-4a0f14bc365e9ed5fd7da31c740935273e69a0b7.tar.gz
glibc-4a0f14bc365e9ed5fd7da31c740935273e69a0b7.tar.bz2
glibc-4a0f14bc365e9ed5fd7da31c740935273e69a0b7.zip
Update.
* malloc/set-freeres.c: Really use already_called variable.
Diffstat (limited to 'malloc/set-freeres.c')
-rw-r--r--malloc/set-freeres.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/malloc/set-freeres.c b/malloc/set-freeres.c
index e73da87bf7..814bc4a55e 100644
--- a/malloc/set-freeres.c
+++ b/malloc/set-freeres.c
@@ -16,6 +16,7 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+#include <atomicity.h>
#include <stdlib.h>
#include <set-hooks.h>
@@ -26,8 +27,8 @@ __libc_freeres (void)
{
/* This function might be called from different places. So better
protect for multiple executions since these are fatal. */
- static int already_called;
+ static long int already_called;
- if (!already_called)
+ if (compare_and_swap (&already_called, 0, 1))
RUN_HOOK (__libc_subfreeres, ());
}