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:
@@ -665,7 +665,7 @@ static ssize_t ndelay_read(int fd, void *buf, size_t count)
|
||||
}
|
||||
|
||||
/* Used for reading stdin */
|
||||
static int buffer_pread(int fd, char *s, unsigned len)
|
||||
static int buffer_pread(/*int fd, */char *s, unsigned len)
|
||||
{
|
||||
unsigned now;
|
||||
struct pollfd input;
|
||||
@@ -709,7 +709,7 @@ static int buffer_pread(int fd, char *s, unsigned len)
|
||||
poll(&input, 1, i * 1000);
|
||||
sigprocmask(SIG_BLOCK, blocked_sigset, NULL);
|
||||
|
||||
i = ndelay_read(fd, s, len);
|
||||
i = ndelay_read(0, s, len);
|
||||
if (i >= 0)
|
||||
break;
|
||||
if (errno == EINTR)
|
||||
@@ -909,7 +909,7 @@ int svlogd_main(int argc, char **argv)
|
||||
if (!np && !exitasap) {
|
||||
i = linemax - stdin_cnt; /* avail. bytes at tail */
|
||||
if (i >= 128) {
|
||||
i = buffer_pread(0, lineptr + stdin_cnt, i);
|
||||
i = buffer_pread(/*0, */lineptr + stdin_cnt, i);
|
||||
if (i <= 0) /* EOF or error on stdin */
|
||||
exitasap = 1;
|
||||
else {
|
||||
@@ -966,7 +966,7 @@ int svlogd_main(int argc, char **argv)
|
||||
/* read/write repeatedly until we see it */
|
||||
while (ch != '\n') {
|
||||
/* lineptr is emptied now, safe to use as buffer */
|
||||
stdin_cnt = exitasap ? -1 : buffer_pread(0, lineptr, linemax);
|
||||
stdin_cnt = exitasap ? -1 : buffer_pread(/*0, */lineptr, linemax);
|
||||
if (stdin_cnt <= 0) { /* EOF or error on stdin */
|
||||
exitasap = 1;
|
||||
lineptr[0] = ch = '\n';
|
||||
|
Reference in New Issue
Block a user