[PATCH] libbb: remove unnecessary argument to nonblock_immune_read
walter harms
wharms at bfs.de
Mon Apr 20 12:35:42 UTC 2015
just for my curiosity:
if only ash uses this function should why it is in libbb ?
re,
wh
Am 20.04.2015 13:52, schrieb Denys Vlasenko:
> Applied, thanks!
>
> On Sun, Apr 19, 2015 at 11:50 AM, Ron Yorston <rmy at tigress.co.uk> wrote:
>> The loop_on_EINTR argument to nonblock_immune_read is always set to 1.
>>
>> function old new delta
>> xmalloc_reads 200 195 -5
>> pgetc 488 483 -5
>> argstr 1313 1308 -5
>> nonblock_immune_read 123 86 -37
>> ------------------------------------------------------------------------------
>> (add/remove: 0/0 grow/shrink: 0/4 up/down: 0/-52) Total: -52 bytes
>>
>> Signed-off-by: Ron Yorston <rmy at tigress.co.uk>
>> ---
>> include/libbb.h | 2 +-
>> libbb/read_printf.c | 8 ++++----
>> shell/ash.c | 6 +++---
>> 3 files changed, 8 insertions(+), 8 deletions(-)
>>
>> diff --git a/include/libbb.h b/include/libbb.h
>> index 0f8363b..21da5f1 100644
>> --- a/include/libbb.h
>> +++ b/include/libbb.h
>> @@ -713,7 +713,7 @@ void* xrealloc_vector_helper(void *vector, unsigned sizeof_and_shift, int idx) F
>>
>>
>> extern ssize_t safe_read(int fd, void *buf, size_t count) FAST_FUNC;
>> -extern ssize_t nonblock_immune_read(int fd, void *buf, size_t count, int loop_on_EINTR) FAST_FUNC;
>> +extern ssize_t nonblock_immune_read(int fd, void *buf, size_t count) FAST_FUNC;
>> // NB: will return short read on error, not -1,
>> // if some data was read before error occurred
>> extern ssize_t full_read(int fd, void *buf, size_t count) FAST_FUNC;
>> diff --git a/libbb/read_printf.c b/libbb/read_printf.c
>> index 5ed6e36..b6a17cc 100644
>> --- a/libbb/read_printf.c
>> +++ b/libbb/read_printf.c
>> @@ -45,20 +45,20 @@
>> * which detects EAGAIN and uses poll() to wait on the fd.
>> * Thankfully, poll() doesn't care about O_NONBLOCK flag.
>> */
>> -ssize_t FAST_FUNC nonblock_immune_read(int fd, void *buf, size_t count, int loop_on_EINTR)
>> +ssize_t FAST_FUNC nonblock_immune_read(int fd, void *buf, size_t count)
>> {
>> struct pollfd pfd[1];
>> ssize_t n;
>>
>> while (1) {
>> - n = loop_on_EINTR ? safe_read(fd, buf, count) : read(fd, buf, count);
>> + n = safe_read(fd, buf, count);
>> if (n >= 0 || errno != EAGAIN)
>> return n;
>> /* fd is in O_NONBLOCK mode. Wait using poll and repeat */
>> pfd[0].fd = fd;
>> pfd[0].events = POLLIN;
>> /* note: safe_poll pulls in printf */
>> - loop_on_EINTR ? safe_poll(pfd, 1, -1) : poll(pfd, 1, -1);
>> + safe_poll(pfd, 1, -1);
>> }
>> }
>>
>> @@ -81,7 +81,7 @@ char* FAST_FUNC xmalloc_reads(int fd, size_t *maxsz_p)
>> p = buf + sz;
>> sz += 128;
>> }
>> - if (nonblock_immune_read(fd, p, 1, /*loop_on_EINTR:*/ 1) != 1) {
>> + if (nonblock_immune_read(fd, p, 1) != 1) {
>> /* EOF/error */
>> if (p == buf) { /* we read nothing */
>> free(buf);
>> diff --git a/shell/ash.c b/shell/ash.c
>> index b568013..6718901 100644
>> --- a/shell/ash.c
>> +++ b/shell/ash.c
>> @@ -5923,7 +5923,7 @@ expbackq(union node *cmd, int quoted, int quotes)
>> read:
>> if (in.fd < 0)
>> break;
>> - i = nonblock_immune_read(in.fd, buf, sizeof(buf), /*loop_on_EINTR:*/ 1);
>> + i = nonblock_immune_read(in.fd, buf, sizeof(buf));
>> TRACE(("expbackq: read returns %d\n", i));
>> if (i <= 0)
>> break;
>> @@ -9677,7 +9677,7 @@ preadfd(void)
>> #if ENABLE_FEATURE_EDITING
>> retry:
>> if (!iflag || g_parsefile->pf_fd != STDIN_FILENO)
>> - nr = nonblock_immune_read(g_parsefile->pf_fd, buf, IBUFSIZ - 1, /*loop_on_EINTR:*/ 1);
>> + nr = nonblock_immune_read(g_parsefile->pf_fd, buf, IBUFSIZ - 1);
>> else {
>> int timeout = -1;
>> # if ENABLE_ASH_IDLE_TIMEOUT
>> @@ -9719,7 +9719,7 @@ preadfd(void)
>> }
>> }
>> #else
>> - nr = nonblock_immune_read(g_parsefile->pf_fd, buf, IBUFSIZ - 1, /*loop_on_EINTR:*/ 1);
>> + nr = nonblock_immune_read(g_parsefile->pf_fd, buf, IBUFSIZ - 1);
>> #endif
>>
>> #if 0 /* disabled: nonblock_immune_read() handles this problem */
>> --
>> 2.1.0
>>
>> _______________________________________________
>> busybox mailing list
>> busybox at busybox.net
>> http://lists.busybox.net/mailman/listinfo/busybox
> _______________________________________________
> busybox mailing list
> busybox at busybox.net
> http://lists.busybox.net/mailman/listinfo/busybox
>
More information about the busybox
mailing list