mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-08 18:30:18 +00:00
2002-11-18 Wolfram Gloger <wg@malloc.de>
* malloc/arena.c (ptmalloc_lock_all, ptmalloc_unlock_all, ptmalloc_unlock_all2): Do nothing if not initialized. Bug report from Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de>.
This commit is contained in:
parent
51b3c8f6b7
commit
2a652f5aca
@ -73,6 +73,9 @@ static int stat_n_heaps;
|
|||||||
/* Mapped memory in non-main arenas (reliable only for NO_THREADS). */
|
/* Mapped memory in non-main arenas (reliable only for NO_THREADS). */
|
||||||
static unsigned long arena_mem;
|
static unsigned long arena_mem;
|
||||||
|
|
||||||
|
/* Already initialized? */
|
||||||
|
int __malloc_initialized = -1;
|
||||||
|
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
#if USE_ARENAS
|
#if USE_ARENAS
|
||||||
@ -212,6 +215,8 @@ ptmalloc_lock_all __MALLOC_P((void))
|
|||||||
{
|
{
|
||||||
mstate ar_ptr;
|
mstate ar_ptr;
|
||||||
|
|
||||||
|
if(__malloc_initialized < 1)
|
||||||
|
return;
|
||||||
(void)mutex_lock(&list_lock);
|
(void)mutex_lock(&list_lock);
|
||||||
for(ar_ptr = &main_arena;;) {
|
for(ar_ptr = &main_arena;;) {
|
||||||
(void)mutex_lock(&ar_ptr->mutex);
|
(void)mutex_lock(&ar_ptr->mutex);
|
||||||
@ -232,6 +237,8 @@ ptmalloc_unlock_all __MALLOC_P((void))
|
|||||||
{
|
{
|
||||||
mstate ar_ptr;
|
mstate ar_ptr;
|
||||||
|
|
||||||
|
if(__malloc_initialized < 1)
|
||||||
|
return;
|
||||||
tsd_setspecific(arena_key, save_arena);
|
tsd_setspecific(arena_key, save_arena);
|
||||||
__malloc_hook = save_malloc_hook;
|
__malloc_hook = save_malloc_hook;
|
||||||
__free_hook = save_free_hook;
|
__free_hook = save_free_hook;
|
||||||
@ -255,6 +262,8 @@ ptmalloc_unlock_all2 __MALLOC_P((void))
|
|||||||
{
|
{
|
||||||
mstate ar_ptr;
|
mstate ar_ptr;
|
||||||
|
|
||||||
|
if(__malloc_initialized < 1)
|
||||||
|
return;
|
||||||
#if defined _LIBC || defined MALLOC_HOOKS
|
#if defined _LIBC || defined MALLOC_HOOKS
|
||||||
tsd_setspecific(arena_key, save_arena);
|
tsd_setspecific(arena_key, save_arena);
|
||||||
__malloc_hook = save_malloc_hook;
|
__malloc_hook = save_malloc_hook;
|
||||||
@ -276,9 +285,6 @@ ptmalloc_unlock_all2 __MALLOC_P((void))
|
|||||||
|
|
||||||
#endif /* !defined NO_THREADS */
|
#endif /* !defined NO_THREADS */
|
||||||
|
|
||||||
/* Already initialized? */
|
|
||||||
int __malloc_initialized = -1;
|
|
||||||
|
|
||||||
/* Initialization routine. */
|
/* Initialization routine. */
|
||||||
#ifdef _LIBC
|
#ifdef _LIBC
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
Loading…
Reference in New Issue
Block a user