From cbb47fa1c6476af73f393a81cd62fc926e1b8f6e Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Wed, 21 Sep 2016 16:28:08 +0200 Subject: [PATCH] malloc: Manual part of conversion to __libc_lock This removes the old mutex_t-related definitions from malloc-machine.h, too. --- ChangeLog | 16 ++++++++++++++++ malloc/arena.c | 6 +++--- malloc/malloc.c | 2 +- sysdeps/mach/hurd/malloc-machine.h | 21 --------------------- sysdeps/nptl/malloc-machine.h | 8 -------- 5 files changed, 20 insertions(+), 33 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5ee24033ab..b6f97dcca4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,21 @@ 2016-09-21 Florian Weimer + 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 + [BZ #20592] Remove RR type classification macros. * resolv/arpa/nameser.h (ns_t_qt_p, ns_t_mrr_p, ns_t_rr_p) diff --git a/malloc/arena.c b/malloc/arena.c index 922ae49e2f..976048370a 100644 --- a/malloc/arena.c +++ b/malloc/arena.c @@ -73,7 +73,7 @@ static __thread mstate thread_arena attribute_tls_model_ie; members of struct malloc_state objects. No other locks must be 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 mstate free_list; @@ -89,7 +89,7 @@ static mstate free_list; acquired, no arena lock must have been acquired, but it is permitted to acquire arena locks subsequently, while list_lock is acquired. */ -static mutex_t list_lock = _LIBC_LOCK_INITIALIZER; +__libc_lock_define_initialized (static, list_lock); /* Already initialized? */ int __malloc_initialized = -1; @@ -112,7 +112,7 @@ int __malloc_initialized = -1; #define arena_lock(ptr, size) do { \ if (ptr && !arena_is_corrupt (ptr)) \ - __libc_lock_lock (ptr->mutex); \ + __libc_lock_lock (ptr->mutex); \ else \ ptr = arena_get2 ((size), NULL); \ } while (0) diff --git a/malloc/malloc.c b/malloc/malloc.c index 20acb73c3e..ef04360b91 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -1616,7 +1616,7 @@ typedef struct malloc_chunk *mfastbinptr; struct malloc_state { /* Serialize access. */ - mutex_t mutex; + __libc_lock_define (, mutex); /* Flags (formerly in max_fast). */ int flags; diff --git a/sysdeps/mach/hurd/malloc-machine.h b/sysdeps/mach/hurd/malloc-machine.h index f778b0d025..87a5d19bcb 100644 --- a/sysdeps/mach/hurd/malloc-machine.h +++ b/sysdeps/mach/hurd/malloc-machine.h @@ -23,27 +23,6 @@ #include #include -/* 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. */ #include diff --git a/sysdeps/nptl/malloc-machine.h b/sysdeps/nptl/malloc-machine.h index 1a2af6f987..b20c423f60 100644 --- a/sysdeps/nptl/malloc-machine.h +++ b/sysdeps/nptl/malloc-machine.h @@ -22,14 +22,6 @@ #include #include - -__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 #endif /* !defined(_MALLOC_MACHINE_H) */ -- 2.11.4.GIT