summaryrefslogtreecommitdiff
path: root/thread.c
diff options
context:
space:
mode:
Diffstat (limited to 'thread.c')
-rw-r--r--thread.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/thread.c b/thread.c
index 90cb1c226e..23a4ebf192 100644
--- a/thread.c
+++ b/thread.c
@@ -4269,6 +4269,14 @@ consume_communication_pipe(int fd)
ssize_t result;
int ret = FALSE; /* for rb_sigwait_sleep */
+ /*
+ * disarm UBF_TIMER before we read, because it can become
+ * re-armed at any time via sighandler and the pipe will refill
+ * We can disarm it because this thread is now processing signals
+ * and we do not want unnecessary SIGVTALRM
+ */
+ ubf_timer_disarm();
+
while (1) {
result = read(fd, buff, sizeof(buff));
if (result > 0) {