aboutsummaryrefslogtreecommitdiff
path: root/miscutils/microcom.c
diff options
context:
space:
mode:
Diffstat (limited to 'miscutils/microcom.c')
-rw-r--r--miscutils/microcom.c7
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);
143skip_write: ; 144skip_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