mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
hurdmalloc: Run fork handler as late as possible [BZ #19431]
This is the hurd-specific follow-up for
29d794863c
: hurdmalloc also needs the
same fix
* hurd/hurdmalloc.c (malloc_fork_prepare): Rename to
_hurd_malloc_fork_prepare.
(malloc_fork_parent): Rename to _hurd_malloc_fork_parent.
(malloc_fork_child): Rename to _hurd_malloc_fork_child.
(_hurd_fork_prepare_hook): Drop malloc_fork_prepare.
(_hurd_fork_parent_hook): Drop malloc_fork_parent.
(_hurd_fork_child_hook): Drop malloc_fork_child.
* hurd/hurdmalloc.h (_hurd_malloc_fork_prepare,
_hurd_malloc_fork_parent, _hurd_malloc_fork_child): Add declarations.
* sysdeps/mach/hurd/fork.c (__fork): Call __malloc_fork_lock_parent
after locking locks (notably hurd_dtable_lock). Call
_hurd_malloc_fork_prepare after that. Call _hurd_malloc_fork_parent
before __malloc_fork_unlock_parent and _hurd_malloc_fork_child before
__malloc_fork_unlock_child.
This commit is contained in:
@ -405,8 +405,8 @@ print_malloc_free_list (void)
|
||||
}
|
||||
#endif /* DEBUG */
|
||||
|
||||
static void
|
||||
malloc_fork_prepare(void)
|
||||
void
|
||||
_hurd_malloc_fork_prepare(void)
|
||||
/*
|
||||
* Prepare the malloc module for a fork by insuring that no thread is in a
|
||||
* malloc critical section.
|
||||
@ -419,8 +419,8 @@ malloc_fork_prepare(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
malloc_fork_parent(void)
|
||||
void
|
||||
_hurd_malloc_fork_parent(void)
|
||||
/*
|
||||
* Called in the parent process after a fork() to resume normal operation.
|
||||
*/
|
||||
@ -432,8 +432,8 @@ malloc_fork_parent(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
malloc_fork_child(void)
|
||||
void
|
||||
_hurd_malloc_fork_child(void)
|
||||
/*
|
||||
* Called in the child process after a fork() to resume normal operation.
|
||||
*/
|
||||
@ -446,7 +446,4 @@ malloc_fork_child(void)
|
||||
}
|
||||
|
||||
|
||||
text_set_element (_hurd_fork_prepare_hook, malloc_fork_prepare);
|
||||
text_set_element (_hurd_fork_parent_hook, malloc_fork_parent);
|
||||
text_set_element (_hurd_fork_child_hook, malloc_fork_child);
|
||||
text_set_element (_hurd_preinit_hook, malloc_init);
|
||||
|
Reference in New Issue
Block a user