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.
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.

jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase