aboutsummaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorJilles Tjoelker <jilles@FreeBSD.org>2017-06-04 21:58:02 +0000
committerJilles Tjoelker <jilles@FreeBSD.org>2017-06-04 21:58:02 +0000
commit8d4cde8e6d3ed2c4b4b76bba68639e116031925d (patch)
tree06c8c4473d4a7af4acb30a962fd455ceba144fc7 /bin
parent9086b30bc42f75548fa935d211871468bcc8183b (diff)
downloadsrc-8d4cde8e6d3ed2c4b4b76bba68639e116031925d.tar.gz
src-8d4cde8e6d3ed2c4b4b76bba68639e116031925d.zip
sh: Make sure to process SIGINT if SETINTON re-enables processing.
If INTON re-enables interrupts, it processes any interrupt that occurred while interrupts were disabled. Make SETINTON do the same.
Notes
Notes: svn path=/head/; revision=319591
Diffstat (limited to 'bin')
-rw-r--r--bin/sh/error.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/bin/sh/error.h b/bin/sh/error.h
index 7743a2ae2bd3..1872e8377333 100644
--- a/bin/sh/error.h
+++ b/bin/sh/error.h
@@ -73,7 +73,7 @@ extern volatile sig_atomic_t intpending;
#define INTOFF suppressint++
#define INTON { if (--suppressint == 0 && intpending) onint(); }
#define is_int_on() suppressint
-#define SETINTON(s) suppressint = (s)
+#define SETINTON(s) do { suppressint = (s); if (suppressint == 0 && intpending) onint(); } while (0)
#define FORCEINTON {suppressint = 0; if (intpending) onint();}
#define SET_PENDING_INT intpending = 1
#define CLEAR_PENDING_INT intpending = 0