Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Oct 2004 23:50:20 GMT
From:      Daniel Eischen <deischen@gdeb.com>
To:        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:  <200410072350.i97NoKaJ006201@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR threads/72429; it has been noted by GNATS.

From: Daniel Eischen <deischen@gdeb.com>
To: Mark Gooderum <mark@verniernetworks.com>
Cc: freebsd-gnats-submit@freebsd.org, <freebsd-threads@freebsd.org>,
	<archie@dellroad.org>
Subject: Re: threads/72429: threads blocked in stdio (fgets, etc) are not
 cancellable in 5.3 (works in 4.x)
Date: Thu, 7 Oct 2004 19:44:45 -0400 (EDT)

 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?200410072350.i97NoKaJ006201>