aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/alloc.c22
1 files changed, 6 insertions, 16 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 192b974196f..2fd50009649 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -130,27 +130,17 @@ static pthread_mutex_t alloc_mutex;
130#define BLOCK_INPUT_ALLOC \ 130#define BLOCK_INPUT_ALLOC \
131 do \ 131 do \
132 { \ 132 { \
133 if (!in_sighandler) \ 133 if (pthread_self () == main_thread) \
134 { \ 134 BLOCK_INPUT; \
135 pthread_mutex_lock (&alloc_mutex); \ 135 pthread_mutex_lock (&alloc_mutex); \
136 if (pthread_self () == main_thread) \
137 BLOCK_INPUT; \
138 else \
139 sigblock (sigmask (SIGIO)); \
140 } \
141 } \ 136 } \
142 while (0) 137 while (0)
143#define UNBLOCK_INPUT_ALLOC \ 138#define UNBLOCK_INPUT_ALLOC \
144 do \ 139 do \
145 { \ 140 { \
146 if (!in_sighandler) \ 141 pthread_mutex_unlock (&alloc_mutex); \
147 { \ 142 if (pthread_self () == main_thread) \
148 pthread_mutex_unlock (&alloc_mutex); \ 143 UNBLOCK_INPUT; \
149 if (pthread_self () == main_thread) \
150 UNBLOCK_INPUT; \
151 else \
152 sigunblock (sigmask (SIGIO)); \
153 } \
154 } \ 144 } \
155 while (0) 145 while (0)
156 146