diff options
Diffstat (limited to 'miscutils/microcom.c')
-rw-r--r-- | miscutils/microcom.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/miscutils/microcom.c b/miscutils/microcom.c index fe6661f00..9a7a41d53 100644 --- a/miscutils/microcom.c +++ b/miscutils/microcom.c | |||
@@ -117,8 +117,9 @@ int microcom_main(int argc UNUSED_PARAM, char **argv) | |||
117 | 117 | ||
118 | bb_got_signal = 0; | 118 | bb_got_signal = 0; |
119 | nfd = 2; | 119 | nfd = 2; |
120 | while (!bb_got_signal && safe_poll(pfd, nfd, timeout) > 0) { | 120 | // Not safe_poll: we want to exit on signal |
121 | if (nfd > 1 && pfd[1].revents) { | 121 | while (!bb_got_signal && poll(pfd, nfd, timeout) > 0) { |
122 | if (nfd > 1 && (pfd[1].revents & POLLIN)) { | ||
122 | char c; | 123 | char c; |
123 | // read from stdin -> write to device | 124 | // read from stdin -> write to device |
124 | if (safe_read(STDIN_FILENO, &c, 1) < 1) { | 125 | if (safe_read(STDIN_FILENO, &c, 1) < 1) { |
@@ -142,7 +143,7 @@ int microcom_main(int argc UNUSED_PARAM, char **argv) | |||
142 | safe_poll(pfd, 1, delay); | 143 | safe_poll(pfd, 1, delay); |
143 | skip_write: ; | 144 | skip_write: ; |
144 | } | 145 | } |
145 | if (pfd[0].revents) { | 146 | if (pfd[0].revents & POLLIN) { |
146 | #define iobuf bb_common_bufsiz1 | 147 | #define iobuf bb_common_bufsiz1 |
147 | ssize_t len; | 148 | ssize_t len; |
148 | // read from device -> write to stdout | 149 | // read from device -> write to stdout |