mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
malloc: Manual part of conversion to __libc_lock
This removes the old mutex_t-related definitions from malloc-machine.h, too.
This commit is contained in:
16
ChangeLog
16
ChangeLog
@ -1,3 +1,19 @@
|
|||||||
|
2016-09-21 Florian Weimer <fweimer@redhat.com>
|
||||||
|
|
||||||
|
malloc: Use __libc_lock wrappers.
|
||||||
|
* malloc/arena.c (list_lock, free_list_lock): Define using
|
||||||
|
__libc_lock_define_initialized.
|
||||||
|
(arena_lock): Adjust formatting.
|
||||||
|
* malloc/malloc.c (struct malloc_state): Define mutex using
|
||||||
|
__libc_lock_define.
|
||||||
|
* sysdeps/generic/malloc-machine.h (mutex_t, mutex_init)
|
||||||
|
(mutex_lock, mutex_trylock, mutex_unlock): Remove.
|
||||||
|
* sysdeps/mach/hurd/malloc-machine.h (mutex_t, mutex_lock)
|
||||||
|
(mutex_unlock, mutex_trylock): Remove.
|
||||||
|
(__pthread_initialize): Remove unused macro.
|
||||||
|
* sysdeps/nptl/malloc-machine.h (mutex_t, mutex_lock)
|
||||||
|
(mutex_unlock, mutex_trylock): Remove.
|
||||||
|
|
||||||
2016-09-21 Florian Weimer <fweimer@redhat.com>
|
2016-09-21 Florian Weimer <fweimer@redhat.com>
|
||||||
|
|
||||||
[BZ #20592]
|
[BZ #20592]
|
||||||
|
@ -73,7 +73,7 @@ static __thread mstate thread_arena attribute_tls_model_ie;
|
|||||||
members of struct malloc_state objects. No other locks must be
|
members of struct malloc_state objects. No other locks must be
|
||||||
acquired after free_list_lock has been acquired. */
|
acquired after free_list_lock has been acquired. */
|
||||||
|
|
||||||
static mutex_t free_list_lock = _LIBC_LOCK_INITIALIZER;
|
__libc_lock_define_initialized (static, free_list_lock);
|
||||||
static size_t narenas = 1;
|
static size_t narenas = 1;
|
||||||
static mstate free_list;
|
static mstate free_list;
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ static mstate free_list;
|
|||||||
acquired, no arena lock must have been acquired, but it is
|
acquired, no arena lock must have been acquired, but it is
|
||||||
permitted to acquire arena locks subsequently, while list_lock is
|
permitted to acquire arena locks subsequently, while list_lock is
|
||||||
acquired. */
|
acquired. */
|
||||||
static mutex_t list_lock = _LIBC_LOCK_INITIALIZER;
|
__libc_lock_define_initialized (static, list_lock);
|
||||||
|
|
||||||
/* Already initialized? */
|
/* Already initialized? */
|
||||||
int __malloc_initialized = -1;
|
int __malloc_initialized = -1;
|
||||||
@ -112,7 +112,7 @@ int __malloc_initialized = -1;
|
|||||||
|
|
||||||
#define arena_lock(ptr, size) do { \
|
#define arena_lock(ptr, size) do { \
|
||||||
if (ptr && !arena_is_corrupt (ptr)) \
|
if (ptr && !arena_is_corrupt (ptr)) \
|
||||||
__libc_lock_lock (ptr->mutex); \
|
__libc_lock_lock (ptr->mutex); \
|
||||||
else \
|
else \
|
||||||
ptr = arena_get2 ((size), NULL); \
|
ptr = arena_get2 ((size), NULL); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
@ -1616,7 +1616,7 @@ typedef struct malloc_chunk *mfastbinptr;
|
|||||||
struct malloc_state
|
struct malloc_state
|
||||||
{
|
{
|
||||||
/* Serialize access. */
|
/* Serialize access. */
|
||||||
mutex_t mutex;
|
__libc_lock_define (, mutex);
|
||||||
|
|
||||||
/* Flags (formerly in max_fast). */
|
/* Flags (formerly in max_fast). */
|
||||||
int flags;
|
int flags;
|
||||||
|
@ -23,27 +23,6 @@
|
|||||||
#include <atomic.h>
|
#include <atomic.h>
|
||||||
#include <libc-lock.h>
|
#include <libc-lock.h>
|
||||||
|
|
||||||
/* Assume hurd, with cthreads */
|
|
||||||
|
|
||||||
/* Cthreads `mutex_t' is a pointer to a mutex, and malloc wants just the
|
|
||||||
mutex itself. */
|
|
||||||
#undef mutex_t
|
|
||||||
#define mutex_t struct mutex
|
|
||||||
|
|
||||||
#undef mutex_init
|
|
||||||
#define mutex_init(m) ({ __mutex_init(m); 0; })
|
|
||||||
|
|
||||||
#undef mutex_lock
|
|
||||||
#define mutex_lock(m) ({ __mutex_lock(m); 0; })
|
|
||||||
|
|
||||||
#undef mutex_unlock
|
|
||||||
#define mutex_unlock(m) ({ __mutex_unlock(m); 0; })
|
|
||||||
|
|
||||||
#define mutex_trylock(m) (!__mutex_trylock(m))
|
|
||||||
|
|
||||||
/* No we're *not* using pthreads. */
|
|
||||||
#define __pthread_initialize ((void (*)(void))0)
|
|
||||||
|
|
||||||
/* madvise is a stub on Hurd, so don't bother calling it. */
|
/* madvise is a stub on Hurd, so don't bother calling it. */
|
||||||
|
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
|
@ -22,14 +22,6 @@
|
|||||||
|
|
||||||
#include <atomic.h>
|
#include <atomic.h>
|
||||||
#include <libc-lock.h>
|
#include <libc-lock.h>
|
||||||
|
|
||||||
__libc_lock_define (typedef, mutex_t)
|
|
||||||
|
|
||||||
#define mutex_init(m) __libc_lock_init (*(m))
|
|
||||||
#define mutex_lock(m) __libc_lock_lock (*(m))
|
|
||||||
#define mutex_trylock(m) __libc_lock_trylock (*(m))
|
|
||||||
#define mutex_unlock(m) __libc_lock_unlock (*(m))
|
|
||||||
|
|
||||||
#include <sysdeps/generic/malloc-machine.h>
|
#include <sysdeps/generic/malloc-machine.h>
|
||||||
|
|
||||||
#endif /* !defined(_MALLOC_MACHINE_H) */
|
#endif /* !defined(_MALLOC_MACHINE_H) */
|
||||||
|
Reference in New Issue
Block a user