[PATCH] Handling of stdin as non-tty and stdout as tty (R6B-0)

Samuel Tardieu <>
Thu Nov 25 14:00:12 CET 1999


The following patch fixes a huge CPU hog when the standard input of the
Erlang process is not a tty while the standard output is.

ERRNO_BLOCK is used to unblock the "cat" process; the code in the release
would however continue to try to "cat" the data.

  Sam

--- erts/emulator/sys/unix/sys.c.orig	Thu Nov 25 13:37:04 1999
+++ erts/emulator/sys/unix/sys.c	Thu Nov 25 13:56:36 1999
@@ -1096,7 +1096,7 @@
 	    char *s;
 
 	    n = read(0, sbuf, sizeof(sbuf));
-	    if (n == -1 && (errno == ERRNO_BLOCK || errno == EINTR)) {
+	    if (n == -1 && errno == EINTR) {
 		continue;
 	    } else if (n <= 0) {
 		exit(0);




More information about the erlang-questions mailing list