[PATCH] libbb: remove unnecessary argument to nonblock_immune_read

Denys Vlasenko vda.linux at googlemail.com
Mon Apr 20 11:52:35 UTC 2015


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


More information about the busybox mailing list