From owner-freebsd-current Mon Mar 25 18:35:40 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id SAA00794 for current-outgoing; Mon, 25 Mar 1996 18:35:40 -0800 (PST) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id SAA00785 for ; Mon, 25 Mar 1996 18:35:36 -0800 (PST) Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.12/8.6.9) id NAA14811; Tue, 26 Mar 1996 13:34:24 +1100 Date: Tue, 26 Mar 1996 13:34:24 +1100 From: Bruce Evans Message-Id: <199603260234.NAA14811@godzilla.zeta.org.au> To: davidg@Root.COM, jkh@time.cdrom.com Subject: Re: Patch to talkd Cc: freebsd-current@FreeBSD.org Sender: owner-current@FreeBSD.org X-Loop: FreeBSD.org Precedence: bulk >>As Poul-H says, we also should only update the tty mod time on input, >>not output. That would solve the other problem people have been >>talking about where it gets lost in some scrolling text. > As far as I was ever aware, that's what the code *does* do. I've never seen >the idle time affected by output. Hmmm. systat uses getch() to read from the terminal and there's a bug somewhere that results in the atime being set for unsuccessful reads. I think getch() does a blocking read and the read gets terminated by a SIGALRM. ufsspec_read() is more broken than ufs_readwrite(). It sets the IN_ACCESS flag at the start of the read, long before successful completion, so the access time may be stamped soon after but not upon sucessful completion. ufs_readwrite() only sets it upon both unsuccessful and successful completions. Bruce