Date: Sun, 12 Jan 1997 10:40:02 -0800 (PST) From: j@uriah.heep.sax.de (J Wunsch) To: freebsd-bugs Subject: Re: bin/2466: telnet sleeps too much :-) Message-ID: <199701121840.KAA10082@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/2466; it has been noted by GNATS.
From: j@uriah.heep.sax.de (J Wunsch)
To: andrew@ugh.net.au
Cc: freebsd-gnats-submit@FreeBSD.ORG
Subject: Re: bin/2466: telnet sleeps too much :-)
Date: Sun, 12 Jan 1997 19:10:12 +0100
As andrew@ugh.net.au wrote:
> If you leave telnet idle and then type something it will say "sleep(5)
> from telnet, after select". It will continue to work but it messes up
> the screen.
> >How-To-Repeat:
> telnet somewhere and leave it idle for a while, come back to it and type.
No, this is not generally repeatable.
I suspect something special with your network setup. Perhaps you add
a debug printf to see what the actual error code is.
The code in question (modulo some tn3720 hack) is:
if ((c = select(16, &ibits, &obits, &xbits,
(poll == 0)? (struct timeval *)0 : &TimeValue)) < 0) {
if (c == -1) {
/*
* we can get EINTR if we are in line mode,
* and the user does an escape (TSTP), or
* some other signal generator.
*/
if (errno == EINTR) {
return 0;
}
/* I don't like this, does it ever happen? */
printf("sleep(5) from telnet, after select\r\n");
sleep(5);
}
return 0;
}
...so the sleep only happens after select() returned -1 (nothing
found) but without EINTR. This is a ``Cannot happen'' situation.
Perhaps you can investigate a little why it happens in your
environment. (Mind you, many people leave telnet sessions idle for
days.)
--
cheers, J"org
joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199701121840.KAA10082>
