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

Reply via email to