Mercurial > emacs
diff src/alloc.c @ 58986:59945307b86b
* syssignal.h: Declare main_thread.
(SIGNAL_THREAD_CHECK): New macro.
* keyboard.c (input_available_signal): Move thread checking code
to macro SIGNAL_THREAD_CHECK and call that macro.
(interrupt_signal): Call SIGNAL_THREAD_CHECK.
* alloc.c (uninterrupt_malloc): Move main_thread to emacs.c.
* emacs.c: Define main_thread.
(main): Initialize main_thread.
(handle_USR1_signal, handle_USR2_signal, fatal_error_signal)
(memory_warning_signal): Call SIGNAL_THREAD_CHECK.
* floatfns.c (float_error): Call SIGNAL_THREAD_CHECK.
* dispnew.c (window_change_signal): Call SIGNAL_THREAD_CHECK.
* sysdep.c (select_alarm): Call SIGNAL_THREAD_CHECK.
* process.c (send_process_trap, sigchld_handler): Call
SIGNAL_THREAD_CHECK.
* data.c (arith_error): Call SIGNAL_THREAD_CHECK.
* atimer.c (alarm_signal_handler): Call SIGNAL_THREAD_CHECK.
| author | Jan Dj?rv <jan.h.d@swipnet.se> |
|---|---|
| date | Wed, 15 Dec 2004 21:40:41 +0000 |
| parents | 408c5135b0a2 |
| children | 0d2678a6add0 |
line wrap: on
line diff
--- a/src/alloc.c Wed Dec 15 21:34:14 2004 +0000 +++ b/src/alloc.c Wed Dec 15 21:40:41 2004 +0000 @@ -99,7 +99,7 @@ If Emacs sets malloc hooks (! SYSTEM_MALLOC) and the emacs_blocked_* functions below are called from malloc, there is a chance that one of these threads preempts the Emacs main thread and the hook variables - end up in a inconsistent state. So we have a mutex to prevent that (note + end up in an inconsistent state. So we have a mutex to prevent that (note that the backend handles concurrent access to malloc within its own threads but Emacs code running in the main thread is not included in that control). @@ -109,7 +109,6 @@ To prevent that, we only call BLOCK/UNBLOCK from the main thread. */ static pthread_mutex_t alloc_mutex; -pthread_t main_thread; #define BLOCK_INPUT_ALLOC \ do \ @@ -1310,8 +1309,6 @@ pthread_mutexattr_init (&attr); pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE); pthread_mutex_init (&alloc_mutex, &attr); - - main_thread = pthread_self (); #endif /* HAVE_GTK_AND_PTHREAD */ if (__free_hook != emacs_blocked_free)
