comparison src/alloc.c @ 75192:a62f8b0494a2

(BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Use pthread_equal, block/unblock SIGIO.
author Jan Djärv <jan.h.d@swipnet.se>
date Thu, 11 Jan 2007 19:21:53 +0000
parents b684c6771753
children 3d45362f1d38
comparison
equal deleted inserted replaced
75191:98ad9ce30ba1 75192:a62f8b0494a2
125 to run Emacs code at once, and the code is not prepared for that. 125 to run Emacs code at once, and the code is not prepared for that.
126 To prevent that, we only call BLOCK/UNBLOCK from the main thread. */ 126 To prevent that, we only call BLOCK/UNBLOCK from the main thread. */
127 127
128 static pthread_mutex_t alloc_mutex; 128 static pthread_mutex_t alloc_mutex;
129 129
130 #define BLOCK_INPUT_ALLOC \ 130 #define BLOCK_INPUT_ALLOC \
131 do \ 131 do \
132 { \ 132 { \
133 if (pthread_self () == main_thread) \ 133 if (pthread_equal (pthread_self (), main_thread)) \
134 BLOCK_INPUT; \ 134 sigblock (sigmask (SIGIO)); \
135 pthread_mutex_lock (&alloc_mutex); \ 135 pthread_mutex_lock (&alloc_mutex); \
136 } \ 136 } \
137 while (0) 137 while (0)
138 #define UNBLOCK_INPUT_ALLOC \ 138 #define UNBLOCK_INPUT_ALLOC \
139 do \ 139 do \
140 { \ 140 { \
141 pthread_mutex_unlock (&alloc_mutex); \ 141 pthread_mutex_unlock (&alloc_mutex); \
142 if (pthread_self () == main_thread) \ 142 if (pthread_equal (pthread_self (), main_thread)) \
143 UNBLOCK_INPUT; \ 143 sigunblock (sigmask (SIGIO)); \
144 } \ 144 } \
145 while (0) 145 while (0)
146 146
147 #else /* SYSTEM_MALLOC || not HAVE_GTK_AND_PTHREAD */ 147 #else /* SYSTEM_MALLOC || not HAVE_GTK_AND_PTHREAD */
148 148
149 #define BLOCK_INPUT_ALLOC BLOCK_INPUT 149 #define BLOCK_INPUT_ALLOC BLOCK_INPUT