about summary refs log tree commit diff
path: root/Src/signals.h
diff options
context:
space:
mode:
authorBart Schaefer <schaefer@zsh.org>2013-04-28 17:47:43 -0700
committerBart Schaefer <schaefer@zsh.org>2013-04-30 00:08:49 -0700
commitd19e18c68d6415214afad37ce6cb47ec038ebe1c (patch)
treec325d0ca0440246d07b758c25a20d6c5f49356b4 /Src/signals.h
parentcbf6f144a942a3db27025e68357b9fd8ca442ed8 (diff)
downloadzsh-d19e18c68d6415214afad37ce6cb47ec038ebe1c.tar.gz
zsh-d19e18c68d6415214afad37ce6cb47ec038ebe1c.tar.xz
zsh-d19e18c68d6415214afad37ce6cb47ec038ebe1c.zip
31350: block SIGWINCH nearly all the time, except
when about to calculate prompts or do synchronous read, so
syscalls are not interrupted by window size changes.
Diffstat (limited to 'Src/signals.h')
-rw-r--r--Src/signals.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/Src/signals.h b/Src/signals.h
index 9541a1a02..d68096891 100644
--- a/Src/signals.h
+++ b/Src/signals.h
@@ -59,6 +59,14 @@
 #define child_block()      signal_block(sigchld_mask)
 #define child_unblock()    signal_unblock(sigchld_mask)
 
+#ifdef SIGWINCH
+# define winch_block()      signal_block(signal_mask(SIGWINCH))
+# define winch_unblock()    signal_unblock(signal_mask(SIGWINCH))
+#else
+# define winch_block()      0
+# define winch_unblock()    0
+#endif
+
 /* ignore a signal */
 #define signal_ignore(S)   signal(S, SIG_IGN)