On 5/17/26 03:59, Collin Funk wrote:
This patch fixes it for me:

diff --git a/src/iopoll.c b/src/iopoll.c
index de20bc8d9..a48a12e12 100644
--- a/src/iopoll.c
+++ b/src/iopoll.c
@@ -194,17 +194,6 @@ wait_for_nonblocking_write (int fd)
    return true;
  }
-/* wrapper for close() that also waits for FD if non blocking. */
-
-extern bool
-close_wait (int fd)
-{
-  while (wait_for_nonblocking_write (fd))
-    ;
-  return close (fd) == 0;
-}
-
-
  /* wrapper for write() that also waits for FD if non blocking.  */
extern bool
diff --git a/src/iopoll.h b/src/iopoll.h
index 1711fdab9..a1561b9ff 100644
--- a/src/iopoll.h
+++ b/src/iopoll.h
@@ -5,5 +5,4 @@ int iopoll (int fdin, int fdout, bool block);
  bool iopoll_input_ok (int fdin);
  bool iopoll_output_ok (int fdout);
-bool close_wait (int fd);
  bool write_wait (int fd, void const *buffer, size_t size);
diff --git a/src/tee.c b/src/tee.c
index 32a18e340..fba6ae089 100644
--- a/src/tee.c
+++ b/src/tee.c
@@ -329,7 +329,7 @@ tee_files (int nfiles, char **files, bool pipe_check)
/* Close the files, but not standard output. */
    for (int i = 1; i <= nfiles; i++)
-    if (0 <= descriptors[i] && ! close_wait (descriptors[i]))
+    if (0 <= descriptors[i] && close (descriptors[i]) < 0)
        {
          error (0, errno, "%s", quotef (files[i]));
          ok = false;

Great, thanks.  Yes, that fixes the infloop issue for me as well.

Have a nice day,
Berny



Reply via email to