Mercurial > emacs
comparison src/emacs.c @ 58818:f8cddae7d959
* 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.
author | Jan Djärv <jan.h.d@swipnet.se> |
---|---|
date | Tue, 07 Dec 2004 08:25:43 +0000 |
parents | c0b9a69b829b |
children | 9f7c2511d457 549734260e34 |
comparison
equal
deleted
inserted
replaced
58817:65f1b18b7f66 | 58818:f8cddae7d959 |
---|---|
2236 /* On Windows, this was done before dumping, and that once suffices. | 2236 /* On Windows, this was done before dumping, and that once suffices. |
2237 Meanwhile, my_edata is not valid on Windows. */ | 2237 Meanwhile, my_edata is not valid on Windows. */ |
2238 memory_warnings (my_edata, malloc_warning); | 2238 memory_warnings (my_edata, malloc_warning); |
2239 #endif /* not WINDOWSNT */ | 2239 #endif /* not WINDOWSNT */ |
2240 #endif | 2240 #endif |
2241 #ifdef HAVE_GTK_AND_PTHREAD | |
2242 /* Pthread may call malloc before main, and then we will get an endless | |
2243 loop, because pthread_self (see alloc.c) calls malloc the first time | |
2244 it is called on some systems. */ | |
2245 reset_malloc_hooks (); | |
2246 #endif | |
2241 #ifdef DOUG_LEA_MALLOC | 2247 #ifdef DOUG_LEA_MALLOC |
2242 malloc_state_ptr = malloc_get_state (); | 2248 malloc_state_ptr = malloc_get_state (); |
2243 #endif | 2249 #endif |
2244 | 2250 |
2245 #ifdef USE_MMAP_FOR_BUFFERS | 2251 #ifdef USE_MMAP_FOR_BUFFERS |