On Mon, Apr 24, 2000 at 05:07:00PM -0500, Chris Costello wrote:
> FreeBSD's threads implement has its own read() function which
> will make a non-blocking read() call (using the _real_ syscall)
> for the specified amount of bytes. Now a non-blocking read()
> call fails unless all the data in nbytes can be read into buf.
> So our implementation will continue to do a non-blocking read
> until all the data can be copied and then allows the thread
> continue, thus blocking only the calling thread.
>
> At least that's what the source code tells me.
Yea, I took a look at lib/libc_r/uthread/uthread_read.c too, but it
didn't paint the whole picture for me. Specifically, I couldn't find
the definition for the _thread_sys_read() function. It looks like the
polling magic to which Jason Evans referred occurs in some interesting
code in uthread_kern.c, though.
Thanks,
-brian
--
Brian O'Shea
[EMAIL PROTECTED]
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message