mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Update.
* intl/gettextP.h (struct loaded_domain): Add conv element. * intl/dcgettext.c (find_msg): Rename to _nl_find_msg and make public. Instead of returning found message directly convert it using iconv if a conversion was found when opening the file. * intl/loadinfo.h: Protect against multiple inclusion. Declare _nl_find_msg. * intl/loadmsgcat.c (_nl_load_domain): Try to determine charset used in the message file and if necessary find approrpiate conversion to match currently selected charset.
This commit is contained in:
@ -1,3 +1,9 @@
|
||||
1999-08-20 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* pthread.c (__pthread_reset_main_thread): Undo last change.
|
||||
(__pthread_kill_other_threads_np): Reset signal handlers for the
|
||||
signals we used in the thread implementation here.
|
||||
|
||||
1999-08-19 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* pthread.c (__pthread_reset_main_thread): Reset signal handlers
|
||||
|
@ -635,7 +635,6 @@ static void pthread_handle_sigdebug(int sig)
|
||||
void __pthread_reset_main_thread()
|
||||
{
|
||||
pthread_descr self = thread_self();
|
||||
struct sigaction sa;
|
||||
|
||||
if (__pthread_manager_request != -1) {
|
||||
/* Free the thread manager stack */
|
||||
@ -647,17 +646,6 @@ void __pthread_reset_main_thread()
|
||||
__pthread_manager_request = __pthread_manager_reader = -1;
|
||||
}
|
||||
|
||||
/* Reset the signal handlers behaviour for the signals the
|
||||
implementation uses since this would be passed to the new
|
||||
process. */
|
||||
sigemptyset(&sa.sa_mask);
|
||||
sa.sa_flags = 0;
|
||||
sa.sa_handler = SIG_DFL;
|
||||
__sigaction(__pthread_sig_restart, &sa, NULL);
|
||||
__sigaction(__pthread_sig_cancel, &sa, NULL);
|
||||
if (__pthread_sig_debug > 0)
|
||||
__sigaction(__pthread_sig_debug, &sa, NULL);
|
||||
|
||||
/* Update the pid of the main thread */
|
||||
THREAD_SETMEM(self, p_pid, __getpid());
|
||||
/* Make the forked thread the main thread */
|
||||
@ -673,11 +661,23 @@ void __pthread_reset_main_thread()
|
||||
|
||||
void __pthread_kill_other_threads_np(void)
|
||||
{
|
||||
struct sigaction sa;
|
||||
/* Terminate all other threads and thread manager */
|
||||
pthread_exit_process(0, NULL);
|
||||
/* Make current thread the main thread in case the calling thread
|
||||
changes its mind, does not exec(), and creates new threads instead. */
|
||||
__pthread_reset_main_thread();
|
||||
|
||||
/* Reset the signal handlers behaviour for the signals the
|
||||
implementation uses since this would be passed to the new
|
||||
process. */
|
||||
sigemptyset(&sa.sa_mask);
|
||||
sa.sa_flags = 0;
|
||||
sa.sa_handler = SIG_DFL;
|
||||
__sigaction(__pthread_sig_restart, &sa, NULL);
|
||||
__sigaction(__pthread_sig_cancel, &sa, NULL);
|
||||
if (__pthread_sig_debug > 0)
|
||||
__sigaction(__pthread_sig_debug, &sa, NULL);
|
||||
}
|
||||
weak_alias (__pthread_kill_other_threads_np, pthread_kill_other_threads_np)
|
||||
|
||||
|
Reference in New Issue
Block a user