From owner-cvs-usrsbin Mon Nov 18 13:48:53 1996 Return-Path: owner-cvs-usrsbin Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id NAA14284 for cvs-usrsbin-outgoing; Mon, 18 Nov 1996 13:48:53 -0800 (PST) Received: (from peter@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id NAA14245; Mon, 18 Nov 1996 13:48:35 -0800 (PST) Date: Mon, 18 Nov 1996 13:48:35 -0800 (PST) From: Peter Wemm Message-Id: <199611182148.NAA14245@freefall.freebsd.org> To: CVS-committers, cvs-all, cvs-usrsbin Subject: cvs commit: src/usr.sbin/syslogd syslogd.c Sender: owner-cvs-usrsbin@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk peter 96/11/18 13:48:35 Modified: usr.sbin/syslogd syslogd.c Log: put on my flame resistant suit and tempt fate by attempting to fix some of the races in my previous commits here, and fix some other problems with syslogd as well. - if the child process exited early (eg: could not bind to the socket), the boot process would hang for 30 seconds. The parent was not noticing that the child had exited. (my fault) - when writing to tty devices, instead of treating them like files that need \r\n instead of \n, actually use ttymsg() which has specific code intended to write to potentially blocking ttys safely. I had a machine lock up last night because /dev/console on a serial port got flow control blocked. Setting comcontrol drainwait fixed everything but syslogd which was going into a spin trying to write to the console and completely ignoreing everything else. - fix a couple of nonsensical bits of code while here.. eg: wait3 takes a pointer to an int. There is no sense in declaring it as 'union wait', then casting the pointer to (int *), then forgetting about it. Revision Changes Path 1.13 +69 -51 src/usr.sbin/syslogd/syslogd.c