Date: Fri, 23 Jun 2000 01:49:59 -0700 (PDT) From: FengYue <fengyue@bluerose.windmoon.nu> To: hackers@FreeBSD.ORG Subject: libc_r/_read(), should the errno be reset to 0? Message-ID: <Pine.BSF.4.10.10006230134540.36067-100000@bluerose.windmoon.nu> In-Reply-To: <200006222214.SAA85686@blackhelicopters.org>
next in thread | previous in thread | raw e-mail | index | archive | help
in thread read() implementation, there is this line of code:
while ((ret = _thread_sys_read(fd, buf, nbytes)) < 0) {
suppose we're doing the IO on a TCP socket: _thread_sys_read() is going to
return -1 if there is no data available in the stream and the errno is then
set to EAGAIN, so let's say we come back to the _thread_sys_read() call again,
this time it successed, however, the errno is still 35 (EAGAIN).
My question is, shouldn't it be reset to zero?
So basically, if you do a read() call on TCP socket in your MT program and
the errno will be 35 even tho the read() call returns no error.
BTW, this is 4.0-stable
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.10.10006230134540.36067-100000>
