diff options
author | Jan Djärv <jan.h.d@swipnet.se> | 2004-12-07 08:25:43 +0000 |
---|---|---|
committer | Jan Djärv <jan.h.d@swipnet.se> | 2004-12-07 08:25:43 +0000 |
commit | aa477689e55b559de0a1c3598f6d793b0625a48f (patch) | |
tree | 64f5e96dcc75b656bb34d672707371006dcbbaa7 /src/emacs.c | |
parent | ded997c16032a6c658e345452d7e5ec275c0642e (diff) | |
download | emacs-aa477689e55b559de0a1c3598f6d793b0625a48f.tar.gz |
* gtkutil.c: Include signal.h and syssignal.h.
(xg_get_file_name): Block and unblock __SIGRTMIN if defined.
* alloc.c: If HAVE_GTK_AND_PTHREAD, include pthread.h,
new variables main_thread and alloc_mutex,
define (UN)BLOCK_INPUT_ALLOC to use alloc_mutex to protect
emacs_blocked_* calls and only do (UN)BLOCK_INPUT in the main thread.
If not HAVE_GTK_AND_PTHREAD, (UN)BLOCK_INPUT_ALLOC is the same as
(UN)BLOCK_INPUT.
(emacs_blocked_free, emacs_blocked_malloc)
(emacs_blocked_realloc): Use (UN)BLOCK_INPUT_ALLOC.
(uninterrupt_malloc): Initialize main_thread and alloc_mutex.
(reset_malloc_hooks): New function.
* lisp.h: Declare reset_malloc_hooks.
* emacs.c (Fdump_emacs): Call reset_malloc_hooks.
* keyboard.c: Conditionally include pthread.h
(handle_async_inpu, input_available_signalt): If not in the main
thread, block signal, send signal to main thread and return.
Diffstat (limited to 'src/emacs.c')
-rw-r--r-- | src/emacs.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/emacs.c b/src/emacs.c index 907d7295fc7..b6b7f986e94 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -2238,6 +2238,12 @@ You must run Emacs in batch mode in order to dump it. */) memory_warnings (my_edata, malloc_warning); #endif /* not WINDOWSNT */ #endif +#ifdef HAVE_GTK_AND_PTHREAD + /* Pthread may call malloc before main, and then we will get an endless + loop, because pthread_self (see alloc.c) calls malloc the first time + it is called on some systems. */ + reset_malloc_hooks (); +#endif #ifdef DOUG_LEA_MALLOC malloc_state_ptr = malloc_get_state (); #endif |