From owner-cvs-all Tue Mar 2 11: 8:30 1999 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id AE0F714DB3; Tue, 2 Mar 1999 11:08:25 -0800 (PST) (envelope-from joerg@FreeBSD.org) Received: (from joerg@localhost) by freefall.freebsd.org (8.9.2/8.9.2) id LAA40787; Tue, 2 Mar 1999 11:08:10 -0800 (PST) (envelope-from joerg@FreeBSD.org) Message-Id: <199903021908.LAA40787@freefall.freebsd.org> From: Joerg Wunsch Date: Tue, 2 Mar 1999 11:08:10 -0800 (PST) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/usr.bin/window wwinit.c wwspawn.c Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk joerg 1999/03/02 11:08:10 PST Modified files: usr.bin/window wwinit.c wwspawn.c Log: Make window(1) actually work again. It has been broken for quite some time now. For whatever reason, the kernel seems to have generated SIGIOs previously without an initial fcntl(...,F_SETOWN), but does no longer. This caused window(1) to wait indefinitely for input. Also, undo rev 1.3 of wwspawn.c, it was not well-thought, and apparently not even tested at all. The blindly (even in a nonsensical place like the comment on top of the function) applied replacement of vfork() by fork() totally ignored that window(1) *does* abuse the feature of vfork() where a modification of the parent's address space is possible (in this case, to notify the parent of an erred exec*). Also, with vfork(), it is guaranteed that the parent is only woken up after the exec*() happened, where the replacement by fork() made the parent to almost always become runnable again before the child, in which case the parent simply told `subprocess died'. Unfortunately, working around _this_ seems to be a lot more of redesign work compared to little gained value, so i think relying on the specifics of vfork() is the simpler way. Submitted by: Philipp Mergenthaler Revision Changes Path 1.10 +1 -0 src/usr.bin/window/wwinit.c 1.4 +2 -2 src/usr.bin/window/wwspawn.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message