threads/72429: threads blocked in stdio (fgets, etc) are not cancellable in 5.3 (works in 4.x)

Daniel Eischen deischen at gdeb.com
Thu Oct 7 16:44:48 PDT 2004


On Thu, 7 Oct 2004, Mark Gooderum wrote:

> Uncle.  Okay - you're right, sigh.
>
> It's not so much that we're using fgets() as many/most C based parsing
> libraries use stdio, bleh.
>
> As for why libc_r is cancellable...
>
> In 4.x  _foo() sets the cancellation state and calls __foo() (for read,
> write, et.al), in 5.3 it's reversed.

Hmm, that's not what it looks like for read.  In 4.x, read() sets
the cancellation state and calls _read().  It looks like fgets()
ends up calling __sread() which calls _read(), so I'm not sure
how cancellation is getting set.  Only read() in libc_r sets the
cancellation point, not _read().  I'm looking at revision 1.11.2.4
of uthread/uthread.c; are we looking at the same version?

-- 
Dan Eischen



More information about the freebsd-threads mailing list