Workaround the broken select() in some Linux kernels that fails to report
a writable state on a socket when an error condition (or remote close) is
present.  Would be good to add actual test suite tests for this, but until
then see demo scripts in the ticket 1758a0b603.
Additional check for an error condition on the socket.
merge 8.5
[1758a0b603] socket-2.13 : Workaround the broken select() in some Linux
kernels that fails to report a writable state on a socket when an error
condition (or remote close) is present.
[1758a0b603] socket_*-2.13 : Workaround the broken select() in some Linux
kernels that fails to report a writable state on a socket when an error
condition (or remote close) is present.
[f0f876c141] Improve consistency in error messages.
# Enter commit message for this check-in. Lines beginning with # are ignored.
#
# user: dkf
# tags: trunk
#
# EDITED     generic/tclClock.c
# EDITED     generic/tclCmdMZ.c
# EDITED     generic/tclFCmd.c
# EDITED     generic/tclIOCmd.c
# EDITED     library/clock.tcl
# EDITED     tests/clock.test
# EDITED     tests/exec.test
# EDITED     tests/fCmd.test
# EDITED     tests/ioCmd.test
# EDITED     tests/regexp.test
# EDITED     tests/regexpComp.test
# EDITED     tests/string.test
# EDITED     tests/subst.test
# EDITED     tests/switch.test
[b47b176adf] Stop segfault when variability in mutex lock schedules cause
and ForwardingResult to remain on the forwardList after it has been
processed.
[b47b176adf] Stop possible segfaults when variability in mutex lock
schedules cause a ForwardingResult to remain on the forwardList after
it has been processed (IORChan is the origin of the code in IORTrans).
[b47b176adf] Stop possible segfaults when variability in mutex lock
schedules cause a ForwardingResult to remain on the forwardList after
it has been processed (IORChan is the origin of the code in IORTrans).
merge trunk