Revert r228521: sometimes job output is lost
(see tools/regression/usr.bin/make/execution/joberr test). openpty(fd + 0, fd + 1,...) version does not have this problem but it sometimes enters an infinite sleep in "ttywait" state in tty_drain() when make(1) closes slave pty.
This commit is contained in:
parent
53c115f838
commit
dfa5fc70db
@ -7,8 +7,6 @@ CFLAGS+=-I${.CURDIR}
|
||||
SRCS= arch.c buf.c cond.c dir.c for.c hash.c hash_tables.c job.c \
|
||||
lst.c main.c make.c parse.c proc.c shell.c str.c suff.c targ.c \
|
||||
util.c var.c
|
||||
DPADD= ${LIBUTIL}
|
||||
LDADD= -lutil
|
||||
|
||||
NO_SHARED?= YES
|
||||
|
||||
|
@ -115,7 +115,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <fcntl.h>
|
||||
#include <inttypes.h>
|
||||
#include <limits.h>
|
||||
#include <libutil.h>
|
||||
#include <paths.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
@ -1799,13 +1798,8 @@ JobStart(GNode *gn, int flags, Job *previous)
|
||||
if (usePipes) {
|
||||
int fd[2];
|
||||
|
||||
if (isatty(1)) {
|
||||
if (openpty(fd + 1, fd + 0, NULL, NULL, NULL) == -1)
|
||||
Punt("Cannot open pty: %s", strerror(errno));
|
||||
} else {
|
||||
if (pipe(fd) == -1)
|
||||
Punt("Cannot create pipe: %s", strerror(errno));
|
||||
}
|
||||
if (pipe(fd) == -1)
|
||||
Punt("Cannot create pipe: %s", strerror(errno));
|
||||
job->inPipe = fd[0];
|
||||
job->outPipe = fd[1];
|
||||
fcntl(job->inPipe, F_SETFD, 1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user