Don't send broken-pipe errors to the Scheme thread when they are
authorChris Hanson <org/chris-hanson/cph>
Sat, 22 Apr 1995 21:13:55 +0000 (21:13 +0000)
committerChris Hanson <org/chris-hanson/cph>
Sat, 22 Apr 1995 21:13:55 +0000 (21:13 +0000)
detected by the pipe readahead thread.  Recently, this has seemed to
cause a fatal error under certain timing conditions (which
unfortunately didn't hold while running under the debugger).  Although
this fatal error is now probably fixed, rather than run the risk of
finding out, it seems safer to avoid the behavior that seemed to cause
the problem.  Since the value of reporting broken-pipe errors is
minimal at best, this is not a big deal.

v7/src/microcode/os2pipe.c

index c0053a0eb211af9134a2ff8d0b58e5c8269d3169..14219f466deca2a4bcd422c772dc3774a118763c 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Id: os2pipe.c,v 1.4 1995/04/22 21:07:12 cph Exp $
+$Id: os2pipe.c,v 1.5 1995/04/22 21:13:55 cph Exp $
 
 Copyright (c) 1994-95 Massachusetts Institute of Technology
 
@@ -120,11 +120,11 @@ input_pipe_thread (void * arg)
       else
        {
          OS2_destroy_message (message);
-         if (rc == ERROR_INVALID_HANDLE)
+         if ((rc == ERROR_INVALID_HANDLE) || (rc == ERROR_BROKEN_PIPE))
            /* Handle was closed on us -- no need to do anything else.  */
            break;
          message = (OS2_make_syscall_error (rc, syscall_dos_read));
-         eofp = (rc == ERROR_BROKEN_PIPE);
+         eofp = 0;
        }
       OS2_send_message (qid, message);
       if (eofp)