Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Oct 2004 19:44:45 -0400 (EDT)
From:      Daniel Eischen <deischen@gdeb.com>
To:        Mark Gooderum <mark@verniernetworks.com>
Cc:        freebsd-threads@freebsd.org
Subject:   Re: threads/72429: threads blocked in stdio (fgets, etc) are not cancellable in 5.3 (works in 4.x)
Message-ID:  <Pine.GSO.4.43.0410071922070.3130-100000@sea.ntplx.net>
In-Reply-To: <4165C4FC.2010607@verniernetworks.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.43.0410071922070.3130-100000>