Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Apr 2003 15:36:53 +0400
From:      Yar Tikhiy <yar@freebsd.org>
To:        "Andrey A. Chernov" <ache@nagual.pp.ru>
Cc:        arch@freebsd.org
Subject:   Re: termios & non-blocking I/O
Message-ID:  <20030409113653.GA63770@comp.chem.msu.su>
In-Reply-To: <20030408181707.GA42723@nagual.pp.ru>
References:  <20030408164614.GA7236@comp.chem.msu.su> <20030408181707.GA42723@nagual.pp.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Apr 08, 2003 at 10:17:08PM +0400, Andrey A. Chernov wrote:
> On Tue, Apr 08, 2003 at 20:46:14 +0400, Yar Tikhiy wrote:
> > While not in disagreement with POSIX[1], such a behaviour has at
> > least one unwelcome consequence:  If a program has been compiled
> > with ``-pthread'', the TIME counter won't work on terminal descriptors
> > that are in blocking mode from the program's point of view -- read(2)
> > will instantly return 0 on them.  That is because the following
> > scenario will happen:
> ...
> 
> > Shouldn't both TIME and MIN cases be uniform in returning -1/EAGAIN
> > on non-blocking descriptors?
> 
> It means that libc_r MIN/TIME handling should be fixed to conform POSIX
> and not general MIN/TIME handling way.

Not exactly, I'm afraid.  If the system returns 0 from read(), libc_r
has nothing else to do but to pass this 0 to the application because
it may be the EOF sign.  Of course, the issue is more complex then I
outlined, as Bruce Evans has pointed out.  However, why to treat TIME
differently from MIN in the system?

-- 
Yar



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030409113653.GA63770>