introduce safe_poll (fixes a problem in top)

function                                             old     new   delta
safe_poll                                              -      77     +77
svlogd_main                                         1470    1466      -4
zcip_main                                           1530    1524      -6
forkexec                                            1345    1338      -7
decode_format_string                                 795     788      -7
collect_blk                                          474     467      -7
buffer_pread                                         540     532      -8
tftp                                                1182    1172     -10
microcom_main                                        763     749     -14
arpping                                              441     424     -17
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/9 up/down: 77/-80)             Total: -3 bytes
   text    data     bss     dec     hex filename
 770162    1034   10404  781600   bed20 busybox_old
 770158    1034   10404  781596   bed1c busybox_unstripped
This commit is contained in:
Denis Vlasenko
2007-09-27 10:09:59 +00:00
parent c9dc2ac578
commit 5d61e71c3a
13 changed files with 65 additions and 30 deletions

View File

@@ -2139,7 +2139,7 @@ static int mysleep(int hund) // sleep for 'h' 1/100 seconds
pfd[0].fd = 0;
pfd[0].events = POLLIN;
return poll(pfd, 1, hund*10) > 0;
return safe_poll(pfd, 1, hund*10) > 0;
}
#define readbuffer bb_common_bufsiz1
@@ -2221,7 +2221,7 @@ static char readit(void) // read (maybe cursor) key from stdin
pfd[0].events = POLLIN;
// Wait 50 ms
// keep reading while there are input chars and room in buffer
while (poll(pfd, 1, 50) > 0 && n <= (MAX_LINELEN - 5)) {
while (safe_poll(pfd, 1, 50) > 0 && n <= (MAX_LINELEN - 5)) {
// read the rest of the ESC string
int r = read(0, readbuffer + n, MAX_LINELEN - n);
if (r > 0)