Browse Source

Update.

2003-05-04  H.J. Lu  <hongjiu.lu@intel.com>

	* malloc/arena.c (arena_get2): Add atomic_write_barrier.
	* malloc/thread-m.h: Include <atomic.h>.
	(atomic_full_barrier): Provide default.
	(atomic_read_barrier): Likewise.
	(atomic_write_barrier): Likewise.
	* sysdeps/ia64/bits/atomic.h (atomic_full_barrier): New #define.
cvs/fedora-2_3-branch
Ulrich Drepper 23 years ago
parent
commit
b5d5b67be3
  1. 9
      ChangeLog
  2. 3
      malloc/arena.c
  3. 13
      malloc/thread-m.h
  4. 2
      sysdeps/ia64/bits/atomic.h

9
ChangeLog

@ -1,3 +1,12 @@
2003-05-04 H.J. Lu <hongjiu.lu@intel.com>
* malloc/arena.c (arena_get2): Add atomic_write_barrier.
* malloc/thread-m.h: Include <atomic.h>.
(atomic_full_barrier): Provide default.
(atomic_read_barrier): Likewise.
(atomic_write_barrier): Likewise.
* sysdeps/ia64/bits/atomic.h (atomic_full_barrier): New #define.
2003-06-30 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/sysdep.h: Define cfi_rel_offset and CFI_REL_OFFSET.

3
malloc/arena.c

@ -1,5 +1,5 @@
/* Malloc implementation for multiple threads without lock contention.
Copyright (C) 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Wolfram Gloger <wg@malloc.de>, 2001.
@ -758,6 +758,7 @@ arena_get2(a_tsd, size) mstate a_tsd; size_t size;
/* Add the new arena to the global list. */
(void)mutex_lock(&list_lock);
a->next = main_arena.next;
atomic_write_barrier ();
main_arena.next = a;
(void)mutex_unlock(&list_lock);

13
malloc/thread-m.h

@ -31,6 +31,7 @@
#if defined(_LIBC) /* The GNU C library, a special case of Posix threads */
#include <atomic.h>
#include <bits/libc-lock.h>
#ifdef PTHREAD_MUTEX_INITIALIZER
@ -306,4 +307,16 @@ typedef void *tsd_key_t;
#endif /* defined(NO_THREADS) */
#ifndef atomic_full_barrier
# define atomic_full_barrier() __asm ("" ::: "memory")
#endif
#ifndef atomic_read_barrier
# define atomic_read_barrier() atomic_full_barrier ()
#endif
#ifndef atomic_write_barrier
# define atomic_write_barrier() atomic_full_barrier ()
#endif
#endif /* !defined(_THREAD_M_H) */

2
sysdeps/ia64/bits/atomic.h

@ -122,3 +122,5 @@ typedef uintmax_t uatomic_max_t;
} \
while (__builtin_expect (__val != __oldval, 0)); \
__oldval & __mask; })
#define atomic_full_barrier() __sync_synchronize ()

Loading…
Cancel
Save